Headers

基线 广泛可用

此功能已得到良好建立,并在许多设备和浏览器版本上都能正常运行。它自以下时间起在各个浏览器中可用 2017 年 3 月.

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

Fetch API 的Headers接口允许你对HTTP 请求和响应头执行各种操作。这些操作包括从请求头列表中检索、设置、添加到和删除头。

你可以通过Request.headersResponse.headers属性检索Headers对象,并使用Headers()构造函数创建新的Headers对象。

注意:你可以通过阅读我们的HTTP 头参考来了解更多关于可用头的信息。

描述

Headers对象具有关联的头列表,该列表最初为空,包含零个或多个名称和值对。你可以使用诸如append()(请参阅示例)的方法来添加内容。在此接口的所有方法中,头名称都通过不区分大小写的字节序列进行匹配。

实现Headers的对象可以直接用于for...of结构,而不是entries()for (const p of myHeaders)等效于for (const p of myHeaders.entries())

修改限制

某些Headers对象对set()delete()append()方法是否可以修改头存在限制。修改限制根据Headers对象的创建方式设置。

如果你尝试传入对不是有效 HTTP 头名称的名称的引用,则所有 Headers 方法都将抛出TypeError。如果头是不可变的,则变异操作将抛出TypeError。在任何其他失败情况下,它们都将静默失败。

构造函数

Headers()

创建一个新的Headers对象。

实例方法

Headers.append()

将新值附加到Headers对象中现有头的末尾,或者如果头不存在,则添加该头。

Headers.delete()

Headers对象中删除头。

Headers.entries()

返回一个迭代器,允许遍历此对象中包含的所有键/值对。

Headers.forEach()

Headers对象中的每个键/值对执行一次提供的函数。

Headers.get()

返回Headers对象中具有给定名称的头的所有值的字符串序列。

Headers.getSetCookie()

返回一个数组,其中包含与响应关联的所有Set-Cookie头的值。

Headers.has()

返回一个布尔值,指示Headers对象是否包含某个头。

Headers.keys()

返回一个迭代器,允许你遍历此对象中包含的键/值对的所有键。

Headers.set()

Headers对象中现有头的设置新值,或者如果头不存在,则添加该头。

Headers.values()

返回一个迭代器,允许你遍历此对象中包含的键/值对的所有值。

注意:需要明确的是,Headers.set()Headers.append()之间的区别在于,如果指定的头已存在并且确实接受多个值,则Headers.set()将用新值覆盖现有值,而Headers.append()将把新值附加到值集的末尾。请参阅其专用页面以获取示例代码。

注意:当迭代 Header 值时,它们会自动按字典顺序排序,并且来自重复头名称的值会合并。

示例

在以下代码段中,我们使用Headers()构造函数创建一个新的头,使用append()向其中添加一个新的头,然后使用get()返回该头值

js
const myHeaders = new Headers();

myHeaders.append("Content-Type", "text/xml");
myHeaders.get("Content-Type"); // should return 'text/xml'

可以通过向构造函数传递数组的数组或对象字面量来实现相同的效果

js
let myHeaders = new Headers({
  "Content-Type": "text/xml",
});

// or, using an array of arrays:
myHeaders = new Headers([["Content-Type", "text/xml"]]);

myHeaders.get("Content-Type"); // should return 'text/xml'

规范

规范
Fetch 标准
# headers-class

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅