伺服器端php設定允許跨網域
解決跨網域的關鍵是設定 Access-Control-Allow-Origin。
例如:客戶端的網域是api.itbsl.com,而請求的網域是www.itbsl.com
如果直接使用ajax訪問,會有以下錯誤:
XMLHttpRequest cannot load http://www.itbsl.com/server.php. No 'Access-Control-Allow-Origin' header is present on the requested resource.Origin 'http://api.itbsl.com' is therefore not allowed access .
1.允許單一網域訪問
指定某網域http://api.itbsl.com跨網域訪問,只需在http://www.itbsl.com/server .php檔案頭新增以下程式碼:
header('Access-Control-Allow-Origin:http://api.itbsl.com');
2.允許多個網域存取
指定多個網域 http://api.itbsl.com、http://doc.itbsl.com等跨域訪問,則只需在http://www.itbsl.com/server.php檔案頭添加如下程式碼:
$origin = isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : ''; $allow_origin = array( 'http://api.itbsl.com', 'http://doc.itbsl.com' ); if(in_array($origin, $allow_origin)){ header('Access-Control-Allow-Origin:'.$origin); }
3.允許所有網域存取
允許所有域名訪問則只需在http://www.itbsl.com/server.php檔案頭中加入以下程式碼:
header('Access-Control-Allow-Origin:*');
推薦教學:《PHP教學》
以上是伺服器端php設定允許跨域的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!