慕尼黑8549860
2019-03-06 17:15:10
ajax請求如果加入自定義請求頭, 就會變成復(fù)雜請求? 瀏覽器第一次會先發(fā)起預(yù)請求, 然后才會發(fā)起第二次真正的請求, 如何去除這個預(yù)請求?
3 回答

鴻蒙傳說
TA貢獻1865條經(jīng)驗 獲得超7個贊
跨域訪問的復(fù)雜請求先發(fā)起一個預(yù)檢請求是跨域資源共享標(biāo)準(zhǔn)的規(guī)范之一,瀏覽器都得遵循。
要么改成簡單請求,要么使用一個不遵循規(guī)范的瀏覽器,否則一定會發(fā)預(yù)檢請求。

繁星coding
TA貢獻1797條經(jīng)驗 獲得超4個贊
這還得找后端配合...
在發(fā)生 CORS 請求時, 瀏覽器檢測到跨域請求, 會自動發(fā)出一個OPTIONS
請求, 就是所謂的預(yù)檢(preflight)請求. 當(dāng)預(yù)檢請求通過的時候, 才會把第二個請求(POST 之類)發(fā)送出去.
如題主所說,非簡單請求每次會發(fā)出兩次請求, 這會影響性能(也是題主所顧慮的). HTTP 協(xié)議增加了個響應(yīng)頭, 可以讓我們在服務(wù)端設(shè)置Access-Control-Max-Age
來緩存預(yù)檢請求, 比如說我們可以設(shè)置為 3600m。
也就是說一小時客戶端只會在第一次的時候發(fā)送兩個請求, 接下來一個小時內(nèi)OPTIONS
請求就被緩存起來了.
添加回答
舉報
0/150
提交
取消