首頁 >web前端 >js教程 >'Access-Control-Allow-Origin”標頭如何控制跨來源資源共用?

'Access-Control-Allow-Origin”標頭如何控制跨來源資源共用?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-23 17:19:11149瀏覽

How Does the 'Access-Control-Allow-Origin' Header Control Cross-Origin Resource Sharing?

理解「Access-Control-Allow-Origin」標頭

在跨域通訊領域,「Access-Control-Allow-Origin 」標頭-Allow-Origin' (ACAO) 標頭起著至關重要的作用。它控制來自不同來源(例如不同網域或子網域)的網頁如何相互互動。讓我們深入研究它的語義和機制,以解決常見的誤解。

揭穿誤解

與最初的假設相反,ACAO 標頭並未向 JavaScript 程式碼授予廣泛的權限發出跨域請求。相反,它按照以下規則運行:

  • 特定來源的權限: ACAO 標頭指定允許訪問資源的來源(域、方案和連接埠) 。例如,如果「Access-Control-Allow-Origin: http://siteB.com」作為回應標頭返回,則這只意味著 http://siteB.com 上的資源可以存取給定資源。
  • 基於回應的授權: ACAO 標頭作為伺服器回應標頭的一部分傳回。它指示有權從伺服器檢索或發送資料的來源,無論請求源自何處。

啟用跨來源存取

啟用網站A 上的JavaScript 程式碼以使用ACAO 存取網站B 上的資源header:

  1. 提供回應標頭: 將'Access-Control-Allow-Origin: http://siteA.com' 標頭新增至網站上資源的回應標頭中您希望網站 A 造訪的 B。
  2. 預檢請求: 對於使用非標準HTTP 的請求動詞(PUT、DELETE 等)或非簡單請求標頭,瀏覽器會啟動預檢OPTIONS 請求來檢查是否允許此類請求。站點 B 應在其預檢回應標頭中包含「Access-Control-Allow-Methods」和「Access-Control-Allow-Headers」以授予權限。

注意: JSONP是一種啟用跨域請求的變通技術,但它容易存在安全風險,並且與依賴於CORS(跨域資源共享)的功能相比,它的功能有限。 ACAO 標頭。

以上是'Access-Control-Allow-Origin”標頭如何控制跨來源資源共用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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