Headers
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.
Fetch API 的 Headers 接口允许你对 HTTP 请求和响应头执行各种操作。这些操作包括检索,设置,添加和删除。
一个 Headers 对象具有关联的标头列表,它最初为空,由零个或多个键值对组成。你可以使用类似于 append()
这样的方法添加(参见示例)到这个对象中。在该接口的所有方法中,标头名称由不区分大小写的字节序列匹配。
出于安全考虑,某些头只能由用户代理控制。这些头信息包括 forbidden header names 和 forbidden response header names。
一个 Headers 对象也有一个关联的 guard,它具有不可变的值,request
,request-no-cors
,response
或none
。这会影响 set()
, delete()
, 和append()
方法 改变 header. 参考更多信息,请看 Guard.
你可以通过 Request.headers
和Response.headers
属性检索一个Headers
对象,并使用 Headers.Headers()
构造函数创建一个新的Headers
对象。
一个实现了Headers
的对象可以直接用于 for...of
结构中,而不是 entries()
: for (var p of myHeaders)
等价于 for (var p of myHeaders.entries())
.
备注: 你可以通过阅读我们的 HTTP headers参考找到更多关于可用 headers 的信息。
构造函数
Headers.Headers()
-
创建一个新的 Headers 对象。
方法
Headers.append()
-
给现有的 header 添加一个值,或者添加一个未存在的 header 并赋值。
Headers.delete()
-
从 Headers 对象中删除指定 header.
Headers.entries()
-
以
迭代器
的形式返回 Headers 对象中所有的键值对。 Headers.get()
-
以
ByteString
的形式从 Headers 对象中返回指定 header 的全部值。 Headers.has()
-
以布尔值的形式从 Headers 对象中返回是否存在指定的 header.
Headers.keys()
-
以
迭代器
的形式返回 Headers 对象中所有存在的 header 名。 Headers.set()
-
替换现有的 header 的值,或者添加一个未存在的 header 并赋值。
Headers.values()
-
以
迭代器
的形式返回 Headers 对象中所有存在的 header 的值。
备注:
值得注意的是,在 header 已存在或者有多个值的状态下Headers.set()
和 Headers.append()
的使用有如下区别,Headers.set()
将会用新的值覆盖已存在的值,但是Headers.append()
会将新的值添加到已存在的值的队列末尾。请参相关词条内的示例代码。
备注:
如果你尝试传入名称不是有效的 HTTP 标头名称的引用,则所有 Headers 方法都将引发 TypeError
。如果标头具有不可变的 Guard,则突变操作会引发 TypeError
。在任何其他失败情况下,它们都会无声地失败。
Obsolete methods
Headers.getAll()
-
用于返回具有给定名称的
Headers
对象中所有值的数组; 这个方法现在已经从规范中删除了,Headers.get()
方法现在返回所有的值而不是一个。
示例
在这个小示例中,我们将会通过 Headers 构造函数创建一个新的 header,先使用 append() 方法添加一个 header,然后通过 get() 方法返回这个 header 的值
let myHeaders = new Headers();
myHeaders.append("Content-Type", "text/xml");
myHeaders.get("Content-Type");
// should return 'text/xml'
规范
Specification |
---|
Fetch Standard # headers-class |
浏览器兼容性
BCD tables only load in the browser