--- title: Headers slug: Web/API/Headers tags: - Headers - Headers API - application/json - 头信息 translation_of: Web/API/Headers ---
{{ APIRef("Fetch") }}
Fetch API 的 Headers 接口允许您对HTTP请求和响应头执行各种操作。 这些操作包括检索,设置,添加和删除。 一个Headers对象具有关联的头列表,它最初为空,由零个或多个键值对组成。你可以使用 {{domxref("Headers.append","append()")}} 方法添加 之类的方法添加到此(参见 {{anch("Examples")}})。在该接口的所有方法中,标题名称由不区分大小写的字节序列匹配。
出于安全考虑,某些头只能由用户代理控制。这些头信息包括 {{Glossary("Forbidden_header_name", "forbidden header names", 1)}} 和 {{Glossary("Forbidden_response_header_name", "forbidden response header names", 1)}}。
一个Headers对象也有一个关联的guard,它具有不可变的值,request
,request-no-cors
,response
或none
。 这会影响 {{domxref("Headers.set","set()")}}, {{domxref("Headers.delete","delete()")}}, 和{{domxref("Headers.append","append()")}} 方法 改变header. 参考更多信息,请看 {{Glossary("Guard")}}.
你可以通过 {{domxref("Request.headers")}} 和{{domxref("Response.headers")}} 属性检索一个Headers
对象, 并使用 {{domxref("Headers.Headers()")}} 构造函数创建一个新的Headers
对象.
一个实现了Headers
的对象可以直接用于 {{jsxref("Statements/for...of", "for...of")}} 结构中, 而不是 {{domxref('Headers.entries()', 'entries()')}}: for (var p of myHeaders)
等价于 for (var p of myHeaders.entries())
.
Note: 您可以通过阅读我们的 HTTP headers参考找到更多关于可用headers的信息。
Note: 值得注意的是,在header已存在或者有多个值的状态下{{domxref("Headers.set()")}} 和 {{domxref("Headers.append()")}}的使用有如下区别, {{domxref("Headers.set()")}} 将会用新的值覆盖已存在的值, 但是{{domxref("Headers.append()")}}会将新的值添加到已存在的值的队列末尾. 请参相关词条内的示例代码.
Note:如果您尝试传入名称不是有效的HTTP头名称的引用,则所有Headers方法都将引发 TypeError
。 如果头部有一个不变的{{Glossary("Guard")}},则变异操作将会抛出一个 TypeError
。 在其他任何失败的情况下,他们默默地失败。
Headers
对象中所有值的数组; 这个方法现在已经从规范中删除了,{{domxref("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 | Status | Comment |
---|---|---|
{{SpecName('Fetch','#headers-class','Headers')}} | {{Spec2('Fetch')}} |
{{ CompatibilityTable() }}
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support | {{ CompatChrome(42) }} {{ CompatChrome(41) }} behind pref |
{{ CompatGeckoDesktop(39)}} 34 behind pref |
{{ CompatNo }} |
29 |
{{ CompatNo }} |
entries() , keys() , values() , and support of for...of |
{{CompatUnknown}} | {{ CompatGeckoDesktop(44)}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
Feature | Android | Firefox Mobile (Gecko) | Firefox OS (Gecko) | IE Phone | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|
Basic support | {{ CompatNo }} | {{ CompatNo }} | {{ CompatNo }} | {{ CompatNo }} | {{ CompatNo }} | {{ CompatNo }} | {{ CompatNo }} |
entries() , keys() , values() , and support of for...of |
{{CompatUnknown}} | {{ CompatGeckoMobile(44)}} | 2.5 | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |