起初只在檔案開頭設定了
header('access-control-allow-origin:*');
然後報錯
request header field x-requested-with is not allowed by access-control-allow-headers in preflight response.
解決方法:
檔案開頭設定
header('access-control-allow-origin:*');
header('access-control-allow-methods:options, get, post'); // 允許option,get,post請求
header('access-control-allow-headers:x-requested-with'); // 允許x-requested-with請求頭
後成功
其中比較疑惑的是 access-control-allow-headers 的設定。 看了 這篇文件 後理解了
如果瀏覽器請求包括access-control-request-headers
字段,則access-control-allow-headers
欄位是必需的。它也是乙個逗號分隔的字串,表明伺服器支援的所有頭資訊字段,不限於瀏覽器在"預檢"中請求的字段。
然後看了請求頭中確實 包括access-control-request-headers
然後成功返回介面資訊
參考 文件:
PHP 伺服器端處理跨域問題
header access control allow origin header access control allow origin 在實際專案中最好指定能跨域訪問的網域名稱,增加安全性。可以寫在乙個公共類裡面,封裝乙個方法呼叫。設定能訪問的網域名稱 static public origina...
伺服器端PHP允許跨域
解決跨域的關鍵是設定access control allow origin。例如 客戶端的網域名稱是 api.itbsl.com,而請求的網域名稱是www.itbsl.com 如果直接使用ajax訪問,會有以下錯誤 1.允許單個網域名稱訪問 指定某網域名稱跨域訪問,則只需在檔案頭部新增如下 head...
php 檔案訪問跨域 伺服器端PHP允許跨域
php php開發 php語言 伺服器端php允許跨域 解決跨域的關鍵是設定 access control allow origin。例如 客戶端的網域名稱是 api.itbsl.com,而請求的網域名稱是www.itbsl.com 如果直接使用ajax訪問,會有以下錯誤 1.允許單個網域名稱訪問 ...