73.nginx跨域
阿新 • • 發佈:2020-07-17
1.nginx跨域相關的配置:
CORS是一個W3C標準,全稱是"跨域資源共享"(Cross-origin resource sharing)。 CORS需要瀏覽器和伺服器同時支援。目前,所有瀏覽器都支援該功能,IE瀏覽器不能低於IE10。 整個CORS通訊過程,都是瀏覽器自動完成,不需要使用者參與。對於開發者來說,CORS通訊與同源的AJAX通訊沒有差別,程式碼完全 一樣。瀏覽器一旦發現AJAX請求跨源,就會自動新增一些附加的頭資訊,有時還會多出一次附加的請求,但使用者不會有感覺。 Access-Control-Allow-Origin: http://api.bob.com # 允許訪問的ip白名單 Access-Control-Allow-Credentials: true # 是否將cookie加入請求中傳送給服務端 Access-Control-Expose-Headers: FooBar # 附加請求頭資訊 Content-Type: text/html; charset=utf-8 # 字元編碼 1)Access-Control-Allow-Origin 該欄位是必須的。它的值要麼是請求時Origin欄位的值,要麼是一個*,表示接受任意域名的請求。 2)Access-Control-Allow-Credentials 該欄位可選。它的值是一個布林值,表示是否允許傳送Cookie。預設情況下,Cookie不包括在CORS請求之中。設為true, 即表示伺服器明確許可,Cookie可以包含在請求中,一起發給伺服器。這個值也只能設為true,如果伺服器不要瀏覽器發 送Cookie,刪除該欄位即可。 3)Access-Control-Expose-Headers 該欄位可選。CORS請求時,XMLHttpRequest物件的getResponseHeader()方法只能拿到6個基本欄位:Cache-Control、 Content-Language、Content-Type、Expires、Last-Modified、Pragma。如果想拿到其他欄位,就必須在 Access-Control-Expose-Headers裡面指定。 上面的例子指定,getResponseHeader('FooBar')可以返回FooBar欄位的值。
參考:
https://blog.csdn.net/java_green_hand0909/article/details/78740765
http://nginx.org/en/docs/http/ngx_http_core_module.html