欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nginx配置跨域請求Access-Control-Allow-Origin * 詳解

 更新時間:2019年06月07日 10:30:30   作者:Developer  
這篇文章主要給大家介紹了關(guān)于Nginx配置跨域請求Access-Control-Allow-Origin * 的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Nginx具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

前言

當(dāng)出現(xiàn)403跨域錯誤的時候 No 'Access-Control-Allow-Origin' header is present on the requested resource,需要給Nginx服務(wù)器配置響應(yīng)的header參數(shù):

一、 解決方案

只需要在Nginx的配置文件中配置以下參數(shù):

location / { 
 add_header Access-Control-Allow-Origin *;
 add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
 add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';

 if ($request_method = 'OPTIONS') {
  return 204;
 }
} 

上面配置代碼即可解決問題了,不想深入研究的,看到這里就可以啦=-=

二、 解釋

1. Access-Control-Allow-Origin

服務(wù)器默認(rèn)是不被允許跨域的。給Nginx服務(wù)器配置`Access-Control-Allow-Origin *`后,表示服務(wù)器可以接受所有的請求源(Origin),即接受所有跨域的請求。

2. Access-Control-Allow-Headers 是為了防止出現(xiàn)以下錯誤:

Request header field Content-Type is not allowed by Access-Control-Allow-Headers in preflight response.

這個錯誤表示當(dāng)前請求Content-Type的值不被支持。其實是我們發(fā)起了"application/json"的類型請求導(dǎo)致的。這里涉及到一個概念:預(yù)檢請求(preflight request),請看下面"預(yù)檢請求"的介紹。

3. Access-Control-Allow-Methods 是為了防止出現(xiàn)以下錯誤:

Content-Type is not allowed by Access-Control-Allow-Headers in preflight response.

4.給OPTIONS 添加 204的返回,是為了處理在發(fā)送POST請求時Nginx依然拒絕訪問的錯誤

發(fā)送"預(yù)檢請求"時,需要用到方法 OPTIONS ,所以服務(wù)器需要允許該方法。

三、 預(yù)檢請求(preflight request)

其實上面的配置涉及到了一個W3C標(biāo)準(zhǔn):CROS,全稱是跨域資源共享 (Cross-origin resource sharing),它的提出就是為了解決跨域請求的。

跨域資源共享(CORS)標(biāo)準(zhǔn)新增了一組 HTTP 首部字段,允許服務(wù)器聲明哪些源站有權(quán)限訪問哪些資源。另外,規(guī)范要求,對那些可能對服務(wù)器數(shù)據(jù)產(chǎn)生副作用的HTTP 請求方法(特別是 GET 以外的 HTTP 請求,或者搭配某些 MIME 類型的 POST 請求),瀏覽器必須首先使用 OPTIONS 方法發(fā)起一個預(yù)檢請求(preflight request),從而獲知服務(wù)端是否允許該跨域請求。服務(wù)器確認(rèn)允許之后,才發(fā)起實際的 HTTP 請求。在預(yù)檢請求的返回中,服務(wù)器端也可以通知客戶端,是否需要攜帶身份憑證(包括 Cookies 和 HTTP 認(rèn)證相關(guān)數(shù)據(jù))。

其實Content-Type字段的類型為application/json的請求就是上面所說的搭配某些 MIME 類型的 POST 請求,CORS規(guī)定,Content-Type不屬于以下MIME類型的,都屬于預(yù)檢請求:

application/x-www-form-urlencoded
multipart/form-data
text/plain

所以 application/json的請求 會在正式通信之前,增加一次"預(yù)檢"請求,這次"預(yù)檢"請求會帶上頭部信息 Access-Control-Request-Headers: Content-Type:

OPTIONS /api/test HTTP/1.1
Origin: http://foo.example
Access-Control-Request-Method: POST
Access-Control-Request-Headers: Content-Type
... 省略了一些

服務(wù)器回應(yīng)時,返回的頭部信息如果不包含Access-Control-Allow-Headers: Content-Type則表示不接受非默認(rèn)的的Content-Type。即出現(xiàn)以下錯誤:

Request header field Content-Type is not allowed by Access-Control-Allow-Headers in preflight response.

參考文章:

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。

相關(guān)文章

  • nginx配置緩存關(guān)閉的實現(xiàn)

    nginx配置緩存關(guān)閉的實現(xiàn)

    本文將介紹nginx緩存關(guān)閉,以及配置的具體步驟和示例,通過調(diào)整Nginx的配置文件,可以確保瀏覽器不會緩存網(wǎng)站的內(nèi)容,從而提高網(wǎng)站的安全性和性能
    2023-10-10
  • Centos系統(tǒng)中如何在指定位置下安裝Nginx

    Centos系統(tǒng)中如何在指定位置下安裝Nginx

    這篇文章主要介紹了Centos系統(tǒng)中如何在指定位置下安裝Nginx,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • 樹莓派如何搭建web服務(wù)器(nginx?+php?+?mysql?+?vsftpd?+phpmyadmin)

    樹莓派如何搭建web服務(wù)器(nginx?+php?+?mysql?+?vsftpd?+phpmyadmin)

    本文介紹如何使用樹莓派搭建Web服務(wù)器,包括安裝Nginx、PHP、MySQL、ftp和phpMyAdmin,步驟詳盡,涵蓋不同架構(gòu)的PHP安裝,提供了配置MySQL遠(yuǎn)程訪問和管理數(shù)據(jù)庫的方法,是搭建個人Web服務(wù)器的實用指南
    2024-11-11
  • Nginx+Tomcat負(fù)載均衡及動靜分離群集的實現(xiàn)

    Nginx+Tomcat負(fù)載均衡及動靜分離群集的實現(xiàn)

    本文主要介紹了Nginx+Tomcat負(fù)載均衡及動靜分離群集的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Nginx 壓縮(gzip、gunzip、gzip_static、send_file)的實現(xiàn)

    Nginx 壓縮(gzip、gunzip、gzip_static、send_file)的實現(xiàn)

    在Web應(yīng)用開發(fā)中,優(yōu)化網(wǎng)站速度是一個非常重要的工作,本文主要介紹了Nginx 壓縮(gzip、gunzip、gzip_static、send_file)的實現(xiàn),感興趣的可以了解一下
    2024-09-09
  • Nginx實現(xiàn)404頁面的方法小結(jié)

    Nginx實現(xiàn)404頁面的方法小結(jié)

    這篇文章主要介紹了Nginx實現(xiàn)404頁面的方法小結(jié),需要的朋友可以參考下
    2017-08-08
  • Nginx配置Https免費證書訪問步驟

    Nginx配置Https免費證書訪問步驟

    這篇文章主要為大家介紹了Nginx配置Https免費證書訪問步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • 解決nginx+uwsgi部署Django的所有問題(小結(jié))

    解決nginx+uwsgi部署Django的所有問題(小結(jié))

    本篇文章主要介紹了解決nginx+uwsgi部署Django的所有問題(小結(jié)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • 詳解Nginx的超時keeplive_timeout配置步驟

    詳解Nginx的超時keeplive_timeout配置步驟

    Nginx 處理的每個請求均有相應(yīng)的超時設(shè)置,本文主要介紹了Nginx的超時keeplive_timeout配置步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Nginx+SSL搭建 HTTPS 網(wǎng)站

    Nginx+SSL搭建 HTTPS 網(wǎng)站

    最近在研究nginx,整好遇到一個需求就是希望服務(wù)器與客戶端之間傳輸內(nèi)容是加密的,防止中間監(jiān)聽泄露信息,但是去證書服務(wù)商那邊申請證書又不合算,因為訪問服務(wù)器的都是內(nèi)部人士,所以自己給自己頒發(fā)證書,忽略掉瀏覽器的不信任警報即可。下面是頒發(fā)證書和配置過程。
    2016-08-08

最新評論