Headers

这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。

Fetch API 的Headers类允许你去对HTTP request和response headers执行各种操作。 这些操作包括:检索, 设置, 添加和删除。 一个Headers类里包含一个header列表, 它的初始值为空或者是零个或多个键值对。你可以使用 append()方法添加 (见 Examples。) 这个类中所有的方法, 其 header的名字顺序匹配并不区分大小写。

Note:出于安全原因, 部分头信息只能被用户代理控制. 这些头信息包括 forbidden header names  和 forbidden response header names.

A Headers object also has an associated guard, which takes a value of immutablerequestrequest-no-corsresponse, 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.

Constructor

Headers.Headers()
创建一个新的Headers对象.

Methods

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.

Examples

在这个小示例中, 我们将会通过Headers构造函数创建一个新的header, 先使用append()方法添加一个header, 然后通过get()方法返回这个header的值

var myHeaders = new Headers();

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

Specifications

Specification Status Comment
Fetch
Headers
Living Standard  

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 42
41 behind pref
 
39 (39)
34 behind pref
未实现

29
28 behind pref

未实现
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 ? ? ? ?

See also

 

文档标签和贡献者

 此页面的贡献者: Taoja, andward
 最后编辑者: Taoja,