HTMLAnchorElement: referrerPolicy 属性

Baseline 广泛可用 *

此功能已成熟,并可在许多设备和浏览器版本上使用。自 2020 年 9 月起,所有浏览器均已提供此功能。

* 此特性的某些部分可能存在不同级别的支持。

HTMLAnchorElement.referrerPolicy 属性反映了 HTML referrerpolicy 属性,该属性定义了在获取资源时发送的引用者信息。

一个字符串;以下选项之一

no-referrer

将完全省略 Referer 标头。请求不会附带任何 Referer 信息。

no-referrer-when-downgrade

当协议安全级别保持不变时(例如 HTTP→HTTP,HTTPS→HTTPS),URL 将作为 Referer 发送,但不会发送到安全性较低的目的地(例如 HTTPS→HTTP)。

origin

在所有情况下,仅将文档的 origin 作为 Referer 发送。文档 https://example.com/page.html 将发送 Referer https://example.com/

origin-when-cross-origin

在执行同源请求时发送完整的 URL,但在其他情况下仅发送文档的 origin。

same-origin

对于 同站点(same-site)的 origin,将发送 Referer,但跨站(cross-origin)请求将不包含任何 Referer 信息。

strict-origin

当协议安全级别保持不变时(例如 HTTPS→HTTPS),仅将文档的 origin 作为 Referer 发送,但不会发送到安全性较低的目的地(例如 HTTPS→HTTP)。

strict-origin-when-cross-origin (默认)

如果未指定策略,这是用户代理的默认行为。在执行同源请求时发送完整 URL,仅在协议安全级别保持不变时发送 origin(例如 HTTPS→HTTPS),并且不向安全性较低的目的地发送标头(例如 HTTPS→HTTP)。

unsafe-url

在执行同源或跨域请求时发送完整 URL。此策略会将受 TLS 保护资源的 origin 和路径泄露给不安全的 origin。请仔细考虑此设置的影响。

示例

js
const elt = document.createElement("a");
const linkText = document.createTextNode("My link");
elt.appendChild(linkText);
elt.href = "https://mdn.org.cn/en-US/";
elt.referrerPolicy = "no-referrer";

const div = document.getElementById("divAround");
div.appendChild(elt); // When clicked, the link will not send a referrer header.

规范

规范
HTML
# dom-a-referrerpolicy

浏览器兼容性

另见