Headers: set() 方法

Baseline 已广泛支持

此特性已得到良好确立,可跨多种设备和浏览器版本使用。自 2017 年 3 月起,所有浏览器均支持此特性。

注意:此功能在 Web Workers 中可用。

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(); // Currently empty

您可以使用 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"); // Returns 'gzip'

您需要使用 Headers.append 将新值追加到现有值列表,而不是覆盖它们。

规范

规范
Fetch
# ref-for-dom-headers-set①

浏览器兼容性

另见