php 跨域问题

2021-05-30 20:01

阅读:809

标签: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

上一篇:js中的进制类型转换

下一篇:bugku web40


评论


亲,登录后才可以留言!