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
# ref-for-dom-headers-set①

浏览器兼容性

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
set

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

参见