CookieStore:get() 方法

安全上下文:此功能仅在安全上下文(HTTPS)中可用,在某些或所有支持的浏览器中。

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

get() 方法是 CookieStore 接口的方法,它返回具有给定 nameoptions 对象的单个 cookie。该方法将返回传递的参数匹配的第一个 cookie。

语法

js
get(name)
get(options)

参数

此方法需要以下一项

name 可选

一个包含 cookie 名称的字符串。

options 可选

包含以下内容的对象

name

一个包含 cookie 名称的字符串。

url

一个包含 cookie URL 的字符串。

注意:url 选项允许修改特定 URL 下范围内的 cookie。Service worker 可以获取在其范围内发送到任何 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

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

  • options 参数为空对象。
  • 如果在主线程中,url 选项存在且与创建 URL 不相等。
  • url 选项存在且其源与创建 URL 的源不同。
  • 查询由给定的 nameoptions 表示的 cookie 失败。

示例

在此示例中,我们返回一个名为“cookie1”的 cookie。如果找到该 cookie,则 Promise 的结果是一个包含单个 cookie 详细信息的对象。

js
const cookie = await cookieStore.get("cookie1");

if (cookie) {
  console.log(cookie);
} else {
  console.log("Cookie not found");
}

规范

规范
Cookie Store API
# dom-cookiestore-get

浏览器兼容性

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