CookieStore:getAll() 方法

安全上下文:此功能仅在安全上下文(HTTPS)中可用,并且在部分或全部支持的浏览器中可用。

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

getAll() 方法是 CookieStore 接口的方法,它返回与传递给它的 nameoptions 匹配的 Cookie 列表。不传递任何参数将返回当前上下文的全部 Cookie。

语法

js
getAll(name)
getAll(options)

参数

name 可选

包含 Cookie 名称的字符串。

options 可选

包含以下内容的对象

name

包含 Cookie 名称的字符串。

url

包含 Cookie URL 的字符串。

注意:url 选项允许修改特定 URL 下范围内的 Cookie。Service Workers 可以获取在其作用域下将发送到任何 URL 的 Cookie。在文档中,您只能获取当前 URL 的 Cookie,因此在文档上下文中唯一有效的 URL 是文档的 URL。

返回值

一个Promise,它解析为一个对象数组,表示与给定 nameoptions 匹配的 Cookie。

每个对象包含以下属性

domain

包含 Cookie 域的字符串。

expires

时间戳,以毫秒为单位的Unix 时间,包含 Cookie 的过期日期。

name

包含 Cookie 名称的字符串。

partitioned

一个布尔值,指示 Cookie 是否为分区 Cookie (true) 或不是 (false)。有关详细信息,请参阅具有独立分区状态的 Cookie (CHIPS)

path

包含 Cookie 路径的字符串。

sameSite

以下SameSite值之一

"strict"

Cookie 仅在第一方上下文中发送,不会与第三方网站发起的请求一起发送。

"lax"

Cookie 不会在正常的跨站点子请求中发送(例如,将图像或框架加载到第三方站点),但会在用户在源站点内导航时发送(例如,在点击链接时)。

"none"

Cookie 将在所有上下文中发送。

secure

一个布尔值,指示 Cookie 是否仅在安全上下文中使用 (true) 或不使用 (false)。

value

包含 Cookie 值的字符串。

异常

SecurityError DOMException

如果源无法序列化为 URL,则抛出此异常。

TypeError

如果以下情况发生,则抛出此异常:

  • 如果在主线程中,则 url 选项存在且与创建 URL 不相等。
  • url 选项存在且其源与创建 URL 的源不同。
  • 查询由给定 nameoptions 表示的 Cookie 失败。

示例

在此示例中,我们使用不带任何参数的 getAll()。这将返回此上下文的全部 Cookie,作为一个对象数组。

js
const cookies = await cookieStore.getAll();

if (cookies.length > 0) {
  console.log(cookies);
} else {
  console.log("Cookie not found");
}

规范

规范
Cookie Store API
# dom-cookiestore-getall

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。