瀏覽器在什么情況下會發(fā)起options預(yù)檢請求?
在非簡單請求且跨域的情況下,瀏覽器會發(fā)起options預(yù)檢請求。
關(guān)于簡單請求和復(fù)雜請求:
1 簡單請求
簡單請求需滿足以下兩個條件
- 請求方法是以下三種方法之一:
- HEAD
- GET
- POST
- HTTP 的頭信息不超出以下幾種字段
- Accept
- Accept-Language
- Content-Language
- Last-Event-ID
- Content-Type: 只限于 (application/x-www-form-urlencoded、multipart/form-data、text/plain)
2 復(fù)雜請求
非簡單請求即是復(fù)雜請求
常見的復(fù)雜請求有:
請求方法為 PUT 或 DELETE
Content-Type 字段類型為 application/json
添加額外的http header 比如access_token
在跨域的情況下,非簡單請求會先發(fā)起一次空body的OPTIONS請求,稱為"預(yù)檢"請求,用于向服務(wù)器請求權(quán)限信息,等預(yù)檢請求被成功響應(yīng)后,才發(fā)起真正的http請求。
瀏覽器的預(yù)檢請求結(jié)果可以通過設(shè)置Access-Control-Max-Age進行緩存
如何解決跨域問題
請看我的另一篇文章: 如何解決前端跨域問題