Headers:set() 方法

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017.

备注: 此特性在 Web Worker 中可用。

Headers 接口的 set() 方法为 Headers 对象中已存在的标头设置新值,或在标头不存在的情况下添加该标头。

set()Headers.append 的不同之处在于:如果指定的标头已经存在且其可以接受多个值,set() 会使用新值覆盖已存在的值,而 Headers.append 将新值追加到值集合的末尾。

由于安全因素,某些标头只能被用户代理控制。这类标头包括禁止修改的标头禁止修改的响应标头

语法

js
set(name, value)

参数

name

你想要为其设置新值的 HTTP 标头的名称。如果给定名称不属于 HTTP 标头的名称,那么该方法会抛出 TypeError

value

你想要设置的新值。

返回值

无(undefined)。

示例

创建一个空的 Headers 对象很简单:

js
const myHeaders = new Headers(); // 目前为空

你可以使用 Headers.append 方法来添加标头,然后使用 set() 来为这个标头设置新值。

js
myHeaders.append("Content-Type", "image/jpeg");
myHeaders.set("Content-Type", "text/html");

如果指定的标头不存在,那么 set() 会创建它,并将其值设置为指定值。如果指定的标头存在且其可以接受多个值,那么 set() 方法将会使用新值覆盖已有的值:

js
myHeaders.set("Accept-Encoding", "deflate");
myHeaders.set("Accept-Encoding", "gzip");
myHeaders.get("Accept-Encoding"); // 返回“gzip”

如果你想要将新值追加到已有的值中(而不是覆盖它),那么你需要使用 Headers.append 方法。

规范

Specification
Fetch Standard
# ref-for-dom-headers-set①

浏览器兼容性

BCD tables only load in the browser

参见