我們在前端使用**請求時,要先設定伺服器允許跨域請求,下面先來介紹幾個常用的配置
(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欄位的值。
(4)access-control-request-method
該字段是必須的,用來列出瀏覽器的cors請求會用到哪些http方法。
(5)access-control-request-headers
該字段是乙個逗號分隔的字串,指定瀏覽器cors請求會額外傳送的頭資訊字段,上例是x-custom-header。
(6)access-control-allow-methods
該欄位必需,它的值是逗號分隔的乙個字串,表明伺服器支援的所有跨域請求的方法。注意,返回的是所有支援的方法,而不單是瀏覽器請求的那個方法。這是為了避免多次"預檢"請求。
(7)access-control-allow-headers
如果瀏覽器請求包括access-control-request-headers欄位,則access-control-allow-headers欄位是必需的。它也是乙個逗號分隔的字串,表明伺服器支援的所有頭資訊字段,不限於瀏覽器在"預檢"中請求的字段。
(8)access-control-max-age(此方法可解決跨域請求時每次請求傳送兩次的問題)
該欄位可選,用來指定本次預檢請求的有效期,單位為秒。上面結果中,有效期是20天(1728000秒),即允許快取該條回應1728000秒(即20天),在此期間,不用發出另一條預檢請求。
一、apache
1、修改httpd.conf,windows中對應的目錄是:c:\wamp\bin\apache\apache2.4.4\conf\httpd.conf
2、把loadmodule headers_module modules/mod_headers.so 前面的注釋刪除
3、vhost下做如此修改
documentroot "c:\users\administrator\desktop\php_1222"servername www.1.comserveralias 1.com
options followsymlinks execcgi
allowoverride all
order allow,deny
allow from all
require
all granted
header set access-control-allow-origin *
header set access-control-allow-methods *
header set access-control-allow-headers "origin, x-requested-with, content-type, accept, authorization"
ajax從乙個域請求另乙個域會有跨域的問題。那麼如何在nginx上實現ajax跨域請求呢?要在nginx上啟用跨域請求,需要新增add_header access-control*指令。如下所示:
location /
注釋如下:
如果需要允許來自任何域的訪問,可以這樣配置:
access-control-allow-origin: *
重啟nginx
service nginx reload
請求測試
成功時,響應頭是如下所示
apache 設定允許跨域
1.首先找到 httpd.conf 檔案 找到 loadmodule headers module modules mod headers.so 把 注釋符去掉 也有可能已經預設去掉了 目的是開啟apache頭資訊自定義模組 2.找到你的虛擬主機檔案 注意是被跨域的 的 具體內容是這樣的檔案 也有可...
apache伺服器跨域設定
在需要允許跨域訪問的伺服器的配置檔案 httpd.conf新增如下內容 loadmodule headers module modules mod headers.so allowoverride none require all granted header set access control ...
讓Apache 和nginx支援跨域訪問
1,如何讓apache支援跨域訪問呢?步驟 修改httpd.conf,windows中對應的目錄是 c wamp bin apache apache2.4.4 conf httpd.conf 把loadmodule headers module modules mod headers.so 前面的注...