HTML 属性:crossorigin

crossorigin 属性在 <audio><img><link><script><video> 元素上有效,提供对 CORS 的支持,定义元素如何处理跨源请求,从而能够配置元素获取数据的 CORS 请求。根据元素的不同,该属性可以是 CORS 设置属性。

媒体元素上的 crossorigin 内容属性是一个 CORS 设置属性。

这些属性是枚举的,并具有以下可能的值

匿名

请求使用 CORS 头部,并且 credentials 标志设置为 'same-origin'。除非目标是相同来源,否则不会通过 cookie、客户端 TLS 证书或 HTTP 身份验证交换**用户凭据**。

使用凭据

请求使用 CORS 头部,credentials 标志设置为 'include',并且始终包含**用户凭据**。

""

将属性名称设置为空值,例如 crossorigincrossorigin="",与 anonymous 相同。

无效的关键字和空字符串将被视为 anonymous 关键字。

默认情况下(即,未指定属性时),根本不使用 CORS。用户代理不会请求对资源的完全访问权限,并且在跨源请求的情况下,将根据相关元素的类型应用某些限制

元素 限制
imgaudiovideo 当资源放置在<canvas>中时,元素被标记为污染的
脚本 通过window.onerror访问错误日志将受到限制。
链接 没有适当的 crossorigin 标头的请求可能会被丢弃。

注意:Chromium 基于浏览器的 rel="icon" 不支持 crossorigin 属性。请参阅打开的 Chromium 问题

示例:crossorigin<script> 元素

您可以使用以下<script>元素告诉浏览器执行 https://example.com/example-framework.js 脚本,而不发送用户凭据。

html
<script
  src="https://example.com/example-framework.js"
  crossorigin="anonymous"></script>

示例:带有凭据的 Web 清单

即使文件来自同一来源,在获取需要凭据的清单时,也必须使用 use-credentials 值。

html
<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 的浏览器中加载。

另请参阅