PHP CORS跨域策略设置多域名 允许跨域访问

当前端访问后端的时候报错:

Access to fetch at ‘https://api.xxx.cn/desc/get.php?url=https%3A%2F%2Fwww.xxx.com’ from origin ‘http://www.xxx.com’ has been blocked by CORS policy: The request client is not a secure context and the resource is in more-private address space `private`. inspector.js:7

这个错误提示表明由于CORS策略的限制,浏览器阻止了从一个非安全上下文(前端网站)向一个更私有的地址空间(api或后端网站)发起请求。

表示不允许跨越访问,如何解决多个域名跨越访问,下面就给大家讲解一哈。

允许所有域名

允许所有域名可以访问,安全系数低,可以在项目开发的时候使用,如果项目上线后被攻击的几率大。

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

指定允许域名

指定多域名访问可以跨越访问,安全系数也比较高点。

$allow_origin = ['www.跨域白名单1.com','www.跨域白名单2.com','http://localhost:80']; 
$origin = isset($_SERVER['HTTP_ORIGIN']) ? $_SERVER['HTTP_ORIGIN'] : '';  //跨域访问的时候才会存在此字段 
if (in_array($origin, $allow_origin)) {     
    header('Access-Control-Allow-Origin:' . $origin); 
} else {    
    return; 
}
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容