1. 檢測服務器所支持的請求方法
可以使用 OPTIONS 方法對服務器發起請求,響應報文包含一個 Allow 首部字段,該字段的值表明了服務器支持的所有 HTTP 方法
2. CORS 中的預檢請求
在 CORS(跨域資源共享) 中,可以使用 OPTIONS 方法發起一個預檢請求,以檢測實際請求是否可以被服務器所接受。預檢請求報文中的 Access-Control-Request-Method 首部字段告知服務器實際請求所使用的 HTTP 方法;Access-Control-Request-Headers 首部字段告知服務器實際請求所攜帶的自定義首部字段。服務器基於從預檢請求獲得的信息來判斷,是否接受接下來的實際請求。
3. 簡單請求與復雜請求
某些請求不會觸發 CORS 預檢請求。我們稱這樣的請求為“簡單請求”。若請求滿足所有下述條件,則該請求可視為“簡單請求”:
- 使用下列方法之一:
GETHEADPOST
- Fetch 規范定義了對 CORS 安全的首部字段集合(Headers),不得人為設置該集合之外的其他首部字段。該集合為:
AcceptAccept-LanguageContent-LanguageContent-Type(需要注意額外的限制)
Content-Type的值僅限於下列三者之一:text/plainmultipart/form-dataapplication/x-www-form-urlencoded
可以簡單的理解,簡單請求以外的請求就是復雜請求。
請注意,復雜請求會發出OPTIONS預檢請求,並只攜帶設置的headers字段,而不會攜帶這些字段具體的值。因此服務器獲取不到headers字段的值,應該先通過這次請求,才能接收到真實的請求。
此外,真實的請求依然需要服務器配置相關的跨域設置。
