码迷,mamicode.com
首页 > Web开发 > 详细

php 跨域问题

时间:2021-04-14 12:05:15      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:dom   响应头   exit   request   function   env   问题   access   span   

/**
 * 跨域请求设置
 */
function checkAllowOrigin()
{
    //从配置文件获取允许源域名
    $allowOrigin = explode(‘,‘, env(‘app.allow_origin‘));
    if (in_array(‘*‘, $allowOrigin)) {
        $origin = ‘*‘;
        $allow = true;
    } else {
        $origin = request()->header(‘Origin‘) ?? request()->domain();
        $allow = in_array($origin, $allowOrigin);
    }

    if (!$allow) {
        exit(‘403‘);
    }

    //允许跨域的来源域名
    header(‘Access-Control-Allow-Origin:‘.$origin); 
    header(‘Access-Control-Allow-Methods: GET, POST, OPTIONS‘);//允许跨域的请求方法
    // 带 cookie 的跨域访问
    header(‘Access-Control-Allow-Credentials: true‘);
    // 响应头设置(允许跨域的头部)
    header(‘Access-Control-Allow-Headers:x-requested-with,Content-Type,X-CSRF-Token,Access-Token‘);
}

四点:

 1.允许跨域的来源域名

 2.允许跨域的请求方法

 3.允许带 cookie 的跨域访问(不允许改为false)

   4.允许跨域的头部(记得把自定义的header头也写进去,不然跨域会不成功)

 

特别要注意的是3和4点。比如第4点的Access-Token,我们项目自定义的,忘了加。在有用户登陆的时候,就一直无法跨域。

 

php 跨域问题

标签:dom   响应头   exit   request   function   env   问题   access   span   

原文地址:https://www.cnblogs.com/hfdp/p/14654952.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!