通過設置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:*');