Headers: getSetCookie() 方法

Baseline 2023
新推出

自 2023 年 9 月起,此功能可在最新的设备和浏览器版本上使用。此功能可能无法在较旧的设备或浏览器上使用。

注意:此功能在 Web Workers 中可用。

getSetCookie() 方法是 Headers 接口的一个方法,它返回一个数组,其中包含与响应关联的所有 Set-Cookie 标头的值。这使得 Headers 对象能够处理多个 Set-Cookie 标头,这是在其实现之前不可能做到的。

此方法旨在用于服务器环境(例如 Node.js)。根据 Fetch 规范,浏览器会阻止前端 JavaScript 代码访问 Set-Cookie 标头,该规范将 Set-Cookie 定义为 禁止的响应标头名称,因此 必须从任何暴露给前端代码的响应中过滤掉

语法

js
getSetCookie()

参数

无。

返回值

一个字符串数组,代表与响应关联的所有不同的 Set-Cookie 标头的值。

如果没有设置 Set-Cookie 标头,该方法将返回一个空数组([ ])。

示例

如上所述,在客户端运行类似下面的代码将不会返回任何结果——Set-Cookie 从网络获取的 Headers 中被过滤掉了。

js
fetch("https://example.com").then((response) => {
  console.log(response.headers.getSetCookie());
  // No header values returned
});

然而,下面可以使用此方法查询多个 Set-Cookie 值。这在服务器端更有用,但它在客户端也可以正常工作。

js
const headers = new Headers({
  "Set-Cookie": "name1=value1",
});

headers.append("Set-Cookie", "name2=value2");

headers.getSetCookie();
// Returns ["name1=value1", "name2=value2"]

规范

规范
Fetch
# dom-headers-getsetcookie

浏览器兼容性

另见