因為在進行跨域請求的時候,前端會先options請求接口,去試探是否支持跨域,支持跨域之后,在進行正式的post請求添加。
解決方法:
(我的路由寫的是any 沒有請求限制,請求接口的時候post限制post請求 get限制get請求就行了)
請求做限制,options請求不執行接口功能。
if (strtolower($_SERVER['REQUEST_METHOD'] == 'options')){
exit();
}
首先,跨域請求分為兩種,一種是簡單請求,即get
請求和post
請求(不帶多余的請求頭),這種情況下,瀏覽器會直接請求,在有允許跨域的頭的情況下,予以顯示。(這里並不是說沒有跨域頭服務器就不返回數據了,數據是照常返回的,但是瀏覽器攔截了返回數據。)
另一種呢是復雜請求,即非get
或post
請求,或者是有了自定義頭的請求。這種情況下,瀏覽器會首先發送一個options
請求(預請求),來確是否允許跨域。在服務器返回的跨域條件都允許之后,瀏覽器才會發送正式請求。
debug_backtrace() 打印棧軌跡
route:list 看了一下,有沒有 options 請求
php artisan route:list --method options