这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。
Fetch API 的 Headers 接口允许您对HTTP请求和响应头执行各种操作。 这些操作包括检索,设置,添加和删除。 一个Headers对象具有关联的头列表,它最初为空,由零个或多个键值对组成。你可以使用 append()
方法添加 之类的方法添加到此(参见 Examples)。在该接口的所有方法中,标题名称由不区分大小写的字节序列匹配。
出于安全考虑,某些头只能由用户代理控制。这些头信息包括 forbidden header names 和 forbidden response header names。
A Headers object also has an associated guard, which takes a value of immutable
, request
, request-no-cors
, response
, or none
. This affects whether the set()
, delete()
, and append()
methods will mutate the header. For more information see Guard.
You can retrieve a Headers
object via the Request.headers
and Response.headers
properties, and create a new Headers
object using the Headers.Headers()
constructor.
An object implementing Headers
can directly be used in a for...of
structure, instead of entries()
: for (var p of myHeaders)
is equivalent to for (var p of myHeaders.entries())
.
Note: you can find more out about the available headers by reading our HTTP headers reference.
构造函数
Headers.Headers()
- 创建一个新的Headers对象.
方法
Headers.append()
- 给现有的header添加一个值, 或者添加一个未存在的header并赋值.
Headers.delete()
- 从Headers对象中删除指定header.
Headers.entries()
- 以
迭代器
的形式返回Headers对象中所有的键值对. Headers.get()
- 从Headers对象中返回指定header的第一个值.
Headers.getAll()
- 以数组的形式从Headers对象中返回指定header的全部值.
Headers.has()
- 以布尔值的形式从Headers对象中返回是否存在指定的header.
Headers.keys()
- 以
迭代器
的形式返回Headers对象中所有存在的header名. Headers.set()
- 替换现有的header的值, 或者添加一个未存在的header并赋值.
Headers.values()
- 以
迭代器
的形式返回Headers对象中所有存在的header的值.
Note: 值得注意的是,在header已存在或者有多个值的状态下Headers.set()
和 Headers.append()
的使用有如下区别, Headers.set()
将会用新的值覆盖已存在的值, 但是Headers.append()
会将新的值添加到已存在的值的队列末尾. 请参相关词条内的示例代码.
Note: All of the Headers methods will throw a TypeError
if you try to pass in a reference to a name that isn't a valid HTTP Header name. The mutation operations will throw a TypeError
if the header has an immutable Guard. In any other failure case they fail silently.
Obsolete methods
Headers.getAll()
- Used to return an array of all the values of a header within a
Headers
object with a given name; this method has now been deleted from the spec, andHeaders.get()
now returns all values instead of just one.
范例
在这个小示例中, 我们将会通过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 | Status | Comment |
---|---|---|
Fetch Headers |
Living Standard |
浏览器兼容性
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support | 42 41 behind pref |
39 (39) 34 behind pref |
未实现 |
29 |
未实现 |
entries() , keys() , values() , and support of for...of |
? | 44 (44) | ? | ? | ? |
Feature | Android | Firefox Mobile (Gecko) | Firefox OS (Gecko) | IE Phone | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|
Basic support | 未实现 | 未实现 | 未实现 | 未实现 | 未实现 | 未实现 | 未实现 |
entries() , keys() , values() , and support of for...of |
? | 44.0 (44) | 2.5 | ? | ? | ? | ? |
也可以看看