vue axios跨域请求发送两次问题(PHP后端解决)

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

问题:

vue axios跨域请求,在Request Headers加Authorization传递Token时,发现统一请求触发了两次,第一次是OPTIONS请求。第二次才是POST请求。

原因:

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

OPTIONS不传任何参数,导致接口报错, 第二次的POST请求不会正常发送,导致跨域的产生。

解决办法:


        header('Access-Control-Allow-Origin:*');

        header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Connection, User-Agent, Cookie,token,Uid");

        header('Access-Control-Allow-Methods: PUT,POST,GET,DELETE,OPTIONS');

        if($this->request->method() === "OPTIONS"){

        exit;

        }

先对OPTIONS的建议做出处理,如果等于OPTIONS,直接不处理。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容