」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 跨域場景下CORS何時使用預檢請求?

跨域場景下CORS何時使用預檢請求?

發佈於2024-11-05
瀏覽:963

When Does CORS Use a Preflight Request in Cross-Domain Scenarios?

CORS:了解跨域請求的「預檢」請求

跨域資源共享(CORS) 在製作HTTP 時提出了挑戰跨域請求。為了解決這些限制,引入了預檢請求作為解決方法。

預檢請求說明

預檢請求是先於實際請求(例如 GET 或 POST)的 OPTIONS 請求)並用於與伺服器協商請求的權限。這些請求包含兩個附加標頭:

  • Access-Control-Request-Method: 指定實際請求的方法。
  • Access-Control -Request-Headers: 列出將包含在實際請求中的標頭。

配置伺服器回應

要處理預檢請求,伺服器必須使用以下標頭回應:

  • Access-Control-Allow-Origin: 向請求中指定的來源授予權限。
  • Access-Control-Allow-Methods: 指定實際請求允許的方法。
  • Access-Control-Allow-Headers: 列出瀏覽器允許的標頭發送實際請求。

客戶端預檢實現

為了使預檢請求成功,客戶端必須包含以下修改:

  • 發送OPTIONS 請求: 在實際請求之前,發送帶有相應Access-Control-Request-* 標頭的OPTIONS 請求。
  • 包括必要的內容headers: 確保實際請求包含 Access-Control-Allow-Headers 回應頭中指定的所有標頭。

範例:

考慮 POST 請求的預檢請求,以從遠端 URL 取得資料。

預檢請求:

  • 來源:https://yourdomain.com
  • Access-Control-Request-Method: POST
  • Access-Control-Request-Headers: X-Custom-Header

伺服器回應(假設POST和X-Custom-Header 是允許的):

  • Access-Control-Allow-Origin:https://yourdomain.com
  • Access-Control-Allow-Methods : POST
  • Access-Control-Allow- Headers: X-Custom-Header

實際請求:

  • 實際請求:
資料來源:https://yourdomain.com

Method : POST

When Does CORS Use a Preflight Request in Cross-Domain Scenarios?X-Custom-Header: value

透過執行下列步驟,您可以有效地預檢HTTP 請求使用CORS 克服跨域限制。

版本聲明 本文轉載於:1729259237如有侵犯,請洽[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3