在了解header之前,我们要先了解.graud这个东西https://blog.csdn.net/jiaoqi6132/article/details/104167548
Fetch API 的 Headers 接口允许您对HTTP请求和响应头执行各种操作。 这些操作包括检索,设置,添加和删除。 一个Headers对象具有关联的头列表,它最初为空,由零个或多个键值对组成。你可以使用 append()
方法添加 之类的方法添加到此.用在绿色的方框里的.
1.Header的构造函数
var myHeaders = new Headers(init);
init 可选
通过一个包含任意 HTTP headers 的对象来预设你的 Headers
. 可以是一个ByteString
对象; 或者是一个已存在的 Headers
对象.
一个实现了Headers
的对象可以直接用于 for...of
结构中, 而不是 entries()
: for (var p of myHeaders)
等价于 for (var p of myHeaders.entries())
.
2. 方法
(1).Headers.append()
myHeaders.append(name,value);
给现有的header添加一个值, 或者添加一个未存在的header并赋值.
name:要追加给Headers对象的HTTP header名称.
value:要追加给Headers对象的HTTP header值.
(2).Headers.get()
myHeaders.get(name);
name
从Headers对象中检索的HTTP header 名,如果HTTP header中不存在指定header名则会抛出一个TypeError
.
以 ByteString
形式返回检索到的值.
(3).Headers.delete()
从Headers对象中删除指定header.
myHeaders.delete(name);
name:需删除的HTTP header名称.
(4)Headers.has()
以布尔值的形式从Headers对象中返回是否存在指定的header.
myHeaders.has(name);
name:你要测试的HTTP头字段的名称。如果给出的名称不在HTTP头中,将爬出异常TypeError
。
Returns: A Boolean
.
(5).Headers.entries()
以 迭代器
的形式返回Headers对象中所有的键值对.
headers.entries();
Return value :返回一个 迭代器
.
(6.)Headers.set()
myHeaders .set(name,value);
name
:要设置为新值的HTTP标头的名称。如果给定名称不是HTTP标头的名称,则此方法将引发TypeError
。
value
您要设置的新值。
(7).Headers.forEach()
对每个数组元素执行一次提供的功能。还在开发,根据数组方法去迭代
(8).Headers.values()
<span style="color:#333333">headers.values();</span>
该Headers.values()
方法返回iterator
允许遍历此对象中包含的所有值的方法。值是ByteString
对象。
(9).Headers.keys()
headers.keys();
该Headers.keys()
方法返回iterator
允许浏览此对象中包含的所有键的信息。键是ByteString
对象。
3.注意点
(1).Headers.set()
和 Headers.append()
的使用
值得注意的是,在header已存在或者有多个值的状态下Headers.set()
和 Headers.append()
的使用有如下区别, Headers.set()
将会用新的值覆盖已存在的值, 但是Headers.append()
会将新的值添加到已存在的值的队列末尾. 请参相关词条内的示例代码.
(2).触发错误
如果您尝试传入名称不是有效的HTTP头名称的引用,则所有Headers方法都将引发 TypeError
。 如果头部有一个不变的Guard,则变异操作将会抛出一个 TypeError
。 在其他任何失败的情况下,他们默默地失败。
A header consists of a name and value.
A name is a byte sequence that matches the field-name token production.
A value is a byte sequence that matches the following conditions:
-
Has no leading or trailing HTTP tab or space bytes.
-
Contains no 0x00 (NUL) or HTTP newline bytes.
每个标头字段均包含一个不区分大小写的字段名,后跟冒号(“:”),可选的前导空格,字段值和可选的尾随空格。
(3).重复表头的危害
重复遍历标头值时,它们将按字典顺序自动排序,并且来自重复标头名称的值将合并在一起。
返回值