vue axios跨域请求,apache服务器设置

问题所在axios请求会发送两次请求

也就是说,它会先使用options去测试,你这个接口是否能够正常通讯,如果不能就不会发送真正的请求过来,如果测试通讯正常,则开始正常请求。

 

思路:

跨域-->配置apache允许跨域:

1.修改http.conf   

LoadModule headers_module modules/mod_headers.so 注释 允许设置header头

2.设置vhost虚拟配置

Header always set Access-Control-Allow-Origin "*"

Header always set Access-Control-Allow-Methods "OPTIONS"

Header always set Access-Control-Allow-Headers "Authorization,DNT,User-Agent,Keep-Alive,Content-Type,accept,origin,X-Requested-With"

 

 

发现header头为options     更改路由规则为options,发现network请求两次,options请求成功,又接着post请求

 

方案一:      所以设置两条路由规则  分别为options和post请求指向同一路由

比如:

'OPTIONS login' => 'login/login',
'POST login' => 'login/login',

 

方案二:      单独配置OPTIONS处理方法

'OPTIONS login' => 'login/test',
'POST login' => 'login/login',

 

方案三:避免框架的加载  直接在入口文件处干掉options

web/index.php

if ( $_SERVER['REQUEST_METHOD'] == 'OPTIONS'){
    die;
}

 

posted @ 2017-11-22 17:01  周起  阅读(3452)  评论(0编辑  收藏  举报