前端跨域 OPTIONS 請求


1. 檢測服務器所支持的請求方法

可以使用 OPTIONS 方法對服務器發起請求,響應報文包含一個 Allow 首部字段,該字段的值表明了服務器支持的所有 HTTP 方法

2. CORS 中的預檢請求

CORS(跨域資源共享) 中,可以使用 OPTIONS 方法發起一個預檢請求,以檢測實際請求是否可以被服務器所接受。預檢請求報文中的 Access-Control-Request-Method 首部字段告知服務器實際請求所使用的 HTTP 方法;Access-Control-Request-Headers 首部字段告知服務器實際請求所攜帶的自定義首部字段。服務器基於從預檢請求獲得的信息來判斷,是否接受接下來的實際請求。

3. 簡單請求與復雜請求

某些請求不會觸發 CORS 預檢請求。我們稱這樣的請求為“簡單請求”。若請求滿足所有下述條件,則該請求可視為“簡單請求”:

  • 使用下列方法之一:
    • GET
    • HEAD
    • POST
  • Fetch 規范定義了對 CORS 安全的首部字段集合(Headers),不得人為設置該集合之外的其他首部字段。該集合為:
    • Accept
    • Accept-Language
    • Content-Language
    • Content-Type (需要注意額外的限制)
  • Content-Type 的值僅限於下列三者之一:
    • text/plain
    • multipart/form-data
    • application/x-www-form-urlencoded

可以簡單的理解,簡單請求以外的請求就是復雜請求。

請注意,復雜請求會發出OPTIONS預檢請求,並只攜帶設置的headers字段,而不會攜帶這些字段具體的值。因此服務器獲取不到headers字段的值,應該先通過這次請求,才能接收到真實的請求。

此外,真實的請求依然需要服務器配置相關的跨域設置。

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM