本文主要講述的是用PHP實作伺服器端允許客戶端ajax跨域 ,有需要的朋友可以參考一下。
解決跨域的關鍵是設定 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:*');
相關影片:ajax影片教學
以上是PHP實作伺服器端允許客戶端ajax跨域的詳細內容。更多資訊請關注PHP中文網其他相關文章!