項目中發現一個奇怪的問題,請求的時候同一個接口有兩個請求,而且有一個狀態為204,有一個為200
在網上查看資料后得知,是因為跨域而引起的,OPTIONS是一種“預檢請求”,瀏覽器在處理跨域訪問的請求時如果判斷請求為復雜請求,則會先向服務器發送一條預檢請求,根據服務器返回的內容瀏覽器判斷服務器是否允許該請求訪問。如果web服務器采用cors的方式支持跨域訪問,在處理復雜請求時這個預檢請求是不可避免的。
如何解決呢?
跨域不可避免,預檢請求也不可避免,那我們能做的,就是減少預檢請求,處理辦法就是設置跨域的有效期Access-Control-Max-Age,這樣就只會跨域預檢一次了。