PHP教程

php 跨域问题

本文主要是介绍php 跨域问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
/**
 * 跨域请求设置
 */
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 跨域问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!