PHP 伺服器端處理跨域問題

2022-07-24 05:42:11 字數 1151 閱讀 5767

header('access-control-allow-origin: *');
header('access-control-allow-origin: ');
在實際專案中最好指定能跨域訪問的網域名稱,增加安全性。可以寫在乙個公共類裡面,封裝乙個方法呼叫。
// 設定能訪問的網域名稱

static public $originarr = [

'','',];

/** * 公共方法呼叫

*/static public function setheader()

}

起初只在檔案開頭設定了

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 然後報錯 request header field x requested with is not allowed by access control allow headers in preflight ...

伺服器端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.允許單個網域名稱訪問 ...