经实测解决Access-Control-Allow-Origin多域名跨域问题

Posted 老松壳

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了经实测解决Access-Control-Allow-Origin多域名跨域问题相关的知识,希望对你有一定的参考价值。

网上流传2种方法解决多域名跨域问题:1、Access-Control-Allow-Origin:[域名一],[域名二]; 2、用$_SERVER("HTTP_ORIGIN")获取来源地址,判断该域名是否属于允许跨域的域名数组,如果是则设置:Access-Control-Allow-Origin:$_SERVER("HTTP_ORIGIN")。

经实测第一种方法完全无效,第二种方法$_SERVER("HTTP_ORIGIN")并不总能获取来源地址,如果是Apache服务器需设置 .htaccess 文件,并且在IE9(IE10+没试过)浏览器下无论如何获取不到$_SERVER("HTTP_ORIGIN")。

其实解决办法很简单,如下代码:

$allow_origin = array(
    "https://www.baidu.com",
    "https://www.google.com"
);
foreach ($allow_origin as $k=>$v) {
    header("Access-Control-Allow-Origin:".$v);
}

 

以上是关于经实测解决Access-Control-Allow-Origin多域名跨域问题的主要内容,如果未能解决你的问题,请参考以下文章

前端跨域问题各种解决方式及原理

Linux运维--企业sudo权限规划详解 (实测一个堆命令搞定)

如何从另一个来源访问 url?即使存在 Access-Control-Allow-* 标头,预检请求也会返回 401

三个奇葩的异常--第二个理论上找到解决办法,没有实测

linux解决zip解压乱码问题,实测可用

Tomcat9在CentOS7上启动慢解决办法,实测可行