PHP设置Access-Control-Allow-Origin一个或多个域名请求白名单
作用
header('Access-Control-Allow-Origin: http://www.wubin.work' );
可以限制网站访问的域。允许特定的域名访问。让不是你网站的接口不能被请求到数据。(当然有很多办法可以伪造~)
header('Access-Control-Allow-Origin: *' );
上面这句话的意思就是#允许所有域名的脚本访问该资源。可以解决测试期间的一些接口跨域的问题。
设置多个域名白名单
Access-Control-Allow-Origin只允许一个值;逗号分隔多个值是行不通的。所以应该换一种思路。
先自己判断域名是否是允许的,如果是再设置允许跨域访问。那么这样就可以了。
$http_origin = 'xxx.wubin.work';
方法一
if (preg_match('/wubin.work|shop.wubin.work|xx.wubin.work$/i', $http_origin)) {
header('Access-Control-Allow-Origin: ' . $http_origin);
}
方法二
if (preg_match('/.*?wubin.work/i', $http_origin)) {
header('Access-Control-Allow-Origin: ' . $http_origin);
}
Methods和Headers
Access-Control-Allow-Origin 就是我们需要设置的域名。
Access-Control-Allow-Methods 是允许的请求方式。
Access-Control-Allow-Headers 跨域允许包含的头。
header("Access-Control-Allow-Methods: POST, GET");
header("Access-Control-Allow-Headers: content-type, x-requested-with");