問題所在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;
}