HTML 屬性:crossorigin
crossorigin 屬性在 <audio>、<img>、<link>、<script> 和 <video> 元素上有效,提供對 CORS 的支援,定義元素如何處理跨源請求,從而能夠配置元素獲取資料的 CORS 請求。根據元素的不同,該屬性可以是 CORS 設定屬性。
媒體元素上的 crossorigin 內容屬性是一個 CORS 設定屬性。
這些屬性是列舉的,並具有以下可能的值
匿名-
請求使用 CORS 頭部,並且 credentials 標誌設定為
'same-origin'。除非目標是相同來源,否則不會透過 cookie、客戶端 TLS 證書或 HTTP 身份驗證交換**使用者憑據**。 使用憑據-
請求使用 CORS 頭部,credentials 標誌設定為
'include',並且始終包含**使用者憑據**。 ""-
將屬性名稱設定為空值,例如
crossorigin或crossorigin="",與anonymous相同。
無效的關鍵字和空字串將被視為 anonymous 關鍵字。
預設情況下(即,未指定屬性時),根本不使用 CORS。使用者代理不會請求對資源的完全訪問許可權,並且在跨源請求的情況下,將根據相關元素的型別應用某些限制
| 元素 | 限制 |
img、audio、video |
當資源放置在<canvas>中時,元素被標記為汙染的。 |
指令碼 |
透過window.onerror訪問錯誤日誌將受到限制。 |
連結 |
沒有適當的 crossorigin 標頭的請求可能會被丟棄。 |
注意:Chromium 基於瀏覽器的 rel="icon" 不支援 crossorigin 屬性。請參閱開啟的 Chromium 問題。
示例:crossorigin 與 <script> 元素
您可以使用以下<script>元素告訴瀏覽器執行 https://example.com/example-framework.js 指令碼,而不傳送使用者憑據。
<script
src="https://example.com/example-framework.js"
crossorigin="anonymous"></script>
示例:帶有憑據的 Web 清單
即使檔案來自同一來源,在獲取需要憑據的清單時,也必須使用 use-credentials 值。
<link rel="manifest" href="/app.webmanifest" crossorigin="use-credentials" />
規範
| 規範 |
|---|
| HTML 標準 # cors-settings-attributes |
瀏覽器相容性
html.elements.audio.crossorigin
BCD 表格僅在啟用 JavaScript 的瀏覽器中載入。
html.elements.img.crossorigin
BCD 表格僅在啟用 JavaScript 的瀏覽器中載入。
html.elements.link.crossorigin
BCD 表格僅在啟用 JavaScript 的瀏覽器中載入。
html.elements.script.crossorigin
BCD 表格僅在啟用 JavaScript 的瀏覽器中載入。
html.elements.video.crossorigin
BCD 表格僅在啟用 JavaScript 的瀏覽器中載入。