接口一次請求會同時執行兩次


因為在進行跨域請求的時候,前端會先options請求接口,去試探是否支持跨域,支持跨域之后,在進行正式的post請求添加。

解決方法:

(我的路由寫的是any 沒有請求限制,請求接口的時候post限制post請求 get限制get請求就行了)

請求做限制,options請求不執行接口功能。

if (strtolower($_SERVER['REQUEST_METHOD'] == 'options')){
	exit();
}

首先,跨域請求分為兩種,一種是簡單請求,即get請求和post請求(不帶多余的請求頭),這種情況下,瀏覽器會直接請求,在有允許跨域的頭的情況下,予以顯示。(這里並不是說沒有跨域頭服務器就不返回數據了,數據是照常返回的,但是瀏覽器攔截了返回數據。)
另一種呢是復雜請求,即非getpost請求,或者是有了自定義頭的請求。這種情況下,瀏覽器會首先發送一個options請求(預請求),來確是否允許跨域。在服務器返回的跨域條件都允許之后,瀏覽器才會發送正式請求。

debug_backtrace() 打印棧軌跡

route:list 看了一下,有沒有 options 請求

php artisan route:list --method options                                


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM