解决vue axios跨域请求发送两次问题

Posted PHP飞鸟的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决vue axios跨域请求发送两次问题相关的知识,希望对你有一定的参考价值。

问题:

vue axios跨域请求,在Request HeadersAuthorization传递Token时,发现统一请求触发了两次,第一次是Request Method: OPTIONS请求。

原因:

跨域请求时,浏览器会首先使用OPTIONS方法发起一个预请求,判断接口是否能够正常通讯。如果通讯异常,则不会发送真正的请求,如果测试通讯正常,则开始真正的请求。

解决方法:

后台:判断请求方式是OPTIONS,则不处理;

 
预请求

 
发送真正请求

 PHP解决方法
class Common extends Controller
{
    public function _initialize()
    {
        parent::_initialize(); // TODO: Change the autogenerated stub
        // 解决跨域问题
        header(\'Access-Control-Allow-Origin:*\');
        // 响应类型
        header(\'Access-Control-Allow-Methods:*\');
        // 响应头设置
        header(\'Access-Control-Allow-Headers:*\');

        // 解决 axios跨域请求发送两次问题
        if (Request::instance()->isOptions()) {
            exit();
        }
    }
}

 

后台对预请求不处理



如果是JAVA后台,请看这篇文章:https://www.cnblogs.com/itmrzhang/p/11003474.html

以上是关于解决vue axios跨域请求发送两次问题的主要内容,如果未能解决你的问题,请参考以下文章

Vue+axios+spring boot遇到的问题(跨域请求)

vue 中使用 axios 请求接口,请求会发送两次问题

使用 vue-resource 发送跨域请求

vue axios发送post请求,怎么设置请求头解决跨域

VUE axios post请求 跳转跨域问题

VUE axios POST 发送跨域 cros 问题