vue + thinkphp6 跨域OPTIONS请求失败问题解决办法

1,527 阅读1分钟

本人最近做了个小项目,使用vue + thinkphp6,本地开发环境是通过vue.config.js测试都没有问题,当部署到服务器上后,出现了跨域options请求的问题,经过多方搜索最终解决了,感谢网络上的大佬们。

尤其感谢掘金上的dailc的文章ajax跨域,这应该是最全的解决方案了

如果有类似问题可以详细阅读上面的文章会有所帮助。

thinkphp6中允许OPTIONS请求可以在app -> BaseController中的初始化中加上对OPTIONS请求的允许。

代码如下:

// 初始化
protected function initialize()
{
    // 允许OPTIONS请求
    if(Request::method() == 'OPTIONS'){
        header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization");
        header('Access-Control-Allow-Methods: GET, POST, PUT,DELETE,OPTIONS,PATCH');
        exit();
    }
}