首頁  >  文章  >  web前端  >  如何預檢 HTTP 請求以處理跨網域 XMLHttpRequest 呼叫?

如何預檢 HTTP 請求以處理跨網域 XMLHttpRequest 呼叫?

Barbara Streisand
Barbara Streisand原創
2024-10-18 21:53:30220瀏覽

How to Preflight HTTP Requests to Handle Cross-Domain XMLHttpRequest Calls?

CORS:如何預檢HTTP 請求

處理跨域HTTP 請求時,利用諸如實現原始碼的動態腳本標記之類的技術GET 請求URL 可能並不總是可行,特別是對於同時支援GET 和POST 方法的服務。因此,一種有效的解決方法是將伺服器回應配置為包含「Access-Control-Allow-Origin」標頭,並使用 OPTIONS 請求進行預檢請求。

在預檢 OPTIONS 請求期間,瀏覽器包含兩個標頭:Access-控制請求方法和存取控制請求標頭。這些標頭指示客戶端打算在實際請求中使用哪些方法和標頭。

要成功預檢請求,伺服器需要在其預檢回應中確認這些標頭。例如,如果瀏覽器在預檢請求期間發送以下標頭:

<code class="console">Origin: http://yourdomain.com
Access-Control-Request-Method: POST
Access-Control-Request-Headers: X-Custom-Header</code>

伺服器的預檢回應應包含以下標頭:

<code class="console">Access-Control-Allow-Origin: http://yourdomain.com
Access-Control-Allow-Methods: GET, POST
Access-Control-Allow-Headers: X-Custom-Header</code>

至關重要的是, 「存取控制」 -Allow-Headers」回應標頭必須包含與「Access-Control-Request-Headers」請求標頭中指定的相同標頭,且不應包含通配符「*」。

伺服器發送此訊息後預檢回應後,瀏覽器將繼續發出實際請求。

以上是如何預檢 HTTP 請求以處理跨網域 XMLHttpRequest 呼叫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn