PHP通過Access-Control-Allow-Origin 跨域

通過設置Access-Control-Allow-Origin來實現跨域。

例如:
客戶端的域名是client.xxx.com,而請求的域名是server.xxx.com。
如果直接使用ajax訪問,會有以下錯誤:

XMLHttpRequest cannot load http://server.xxx.com/server.php. No 'Access-Control-Allow-Origin' header is present on the requested resource.Origin 'http://client.xxx.com' is therefore not allowed access.

1、允許單個域名訪問
指定某域名(http://client.xxx.com)跨域訪問,則只需在server.php文件頭部添加如下代碼:

header('Access-Control-Allow-Origin:http://client.xxx.com');

// 指定允許其他域名訪問  
//header('Access-Control-Allow-Origin:*');  
// 響應類型  
//header('Access-Control-Allow-Methods:POST');  
// 響應頭設置  
//header('Access-Control-Allow-Headers:x-requested-with,content-type'); 

2、允許多個域名訪問
指定多個域名(http://client1.xxx.com、http://client2.xxx.com等)跨域訪問,則只需在server.php文件頭部添加如下代碼:


$origin = isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : '';  
  
$allow_origin = array(  
    'http://client1.xxx.com',  
    'http://client2.xxx.com'  
);  
  
if(in_array($origin, $allow_origin)){  
    header('Access-Control-Allow-Origin:'.$origin);       
} 

3、允許所有域名訪問
允許所有域名訪問則只需在server.php 文件頭部添加如下代碼:

header('Access-Control-Allow-Origin:*');

原文

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容