跳到主要内容

Headers

2023年03月24日
柏拉文
越努力,越幸运

一、认识


Fetch APIHeaders 接口允许您对 HTTP 请求和响应头执行各种操作。这些操作包括检索,设置,添加和删除。一个 Headers 对象具有关联的头列表,它最初为空,由零个或多个键值对组成。你可以使用 append() 方法添加 之类的方法添加到此 (参见 示例)。在该接口的所有方法中,标题名称由不区分大小写的字节序列匹配。

一个 Headers 对象也有一个关联的 guard,它具有不可变的值,requestrequest-no-corsresponsenone。这会影响 set(), delete(), 和append() 方法 改变 header.

二、构造函数


2.1 Headers()

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

语法

var myHeaders = new Headers(init);
  • init: 通过一个包含任意 HTTP headers 的对象来预设你的 Headers. 可以是一个ByteString 对象; 或者是一个已存在的 Headers 对象。

三、实例方法


3.1 headers.append()

headers.append() 在一个Headers对象内部,Headers接口的 append() 方法可以追加一个新值到已存在的 headers 上,或者新增一个原本不存在的 header

Headers.set()append() 两者之间的不同之处在于当指定 header 是已经存在的并且允许接收多个值时,Headers.set()会重写此值为新值,而append()会追加到值序列的尾部。

语法

myHeaders.append(name,value);
  • name: 要追加给 Headers 对象的 HTTP header 名称。

  • value: 要追加给 Headers 对象的 HTTP header 值。

3.2 headers.delete()

headers.delete() 方法可以从 Headers 对象中删除指定 header.

语法

myHeaders.delete(name);
  • name: 需删除的 HTTP header 名称。

3.3 headers.entries()

headers.entries() 以 迭代器 的形式返回 Headers 对象中所有的键值对。

语法

headers.entries();

返回

返回一个迭代器.

3.4 headers.forEach()

headers.forEach()

3.5 headers.get()

headers.get() 方法以 ByteString 形式从 Headers 对象中返回指定 header 的全部值。如果 Header 对象中不存在请求的 header,则返回 null

语法

myHeaders.get(name);

返回

Headers 对象中检索的 HTTP header 名,如果 HTTP header 中不存在指定 header 名则会抛出一个TypeError

3.6 headers.has()

Headers 接口的 has()方法返回一个布尔值来声明一个 Headers对象 是否包含特定的头信息。

语法

myHeaders.has(name);
  • name: 你要测试的 HTTP 头字段的名称。如果给出的名称不在 HTTP 头中,将爬出异常TypeError

3.7 headers.keys()

headers.keys() 方法返回一个 headers(Object) 对象所有 key 组成的迭代器,通过迭代器可以遍历 headers 这个对象,返回的迭代器中的元素 key 都是字符串。

语法

headers.keys();

返回

返回 headers 对象中所有 key 组成的迭代器 iterator

3.8 headers.set()

Headers 接口中 set() 方法在可以在已经声明中的 headers 对象修改已有的一组键值对或者创建一个新的键值对。

set() 方法和 append() 方法不同的是声明的 Headers 对象是否已经存在对应的 keys 是否已经存在并且已经赋值。set() 方法将会覆盖之前的 value,然而 append()方法只会在 Headers 对象的尾部添加一个新的键值对。

语法

myHeaders.set(name, value);
  • name: name就是需要对 HTTP header 设置新值的 key,一般为字符串。如果设置的name 不是 HTTP header 规范里面规定的 name,那么将会抛出错误TypeError

  • value: value 就是 name 对应的值。

3.9 headers.values()

Headers.values() 方法返回一个可迭代数值,通过这个数值可以遍历 Headers中键值对的 value 值。返回的 value 都是 ByteString 对象。

语法

headers.values();

返回值

返回一个由键值对中 value 组成的数组。