vue axios跨域請求發(fā)送兩次問題
問題:
vue axios跨域請求,在Request Headers加Authorization傳遞Token時(shí),發(fā)現(xiàn)統(tǒng)一請求觸發(fā)了兩次,第一次是OPTIONS請求。第二次才是POST請求。
原因:
跨域請求時(shí),瀏覽器會(huì)首先使用OPTIONS方法發(fā)起一個(gè)預(yù)請求,判斷接口是否能夠正常通訊。如果通訊異常,則不會(huì)發(fā)送真正的請求,如果測試通訊正常,則開始真正的請求。
OPTIONS不傳任何參數(shù),導(dǎo)致接口報(bào)錯(cuò), 第二次的POST請求不會(huì)正常發(fā)送,導(dǎo)致跨域的產(chǎn)生。
解決辦法:
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,直接不處理。