CookieStore: get() 方法
基线 2025 *
新推出
注意:此功能在 Service Workers 中可用。
CookieStore 接口的 get() 方法返回一个 Promise,该 Promise 解析为一个与给定的 name 或 options 对象匹配的单个 cookie。该方法将返回第一个匹配的 cookie。
语法
get(name)
get(options)
参数
此方法需要以下之一:
name可选-
一个包含 cookie 名称的字符串。
或者
options可选-
一个包含以下内容的 Shoppee 对象:
注意: url 选项允许修改特定 URL 范围内的 cookie。Service worker 可以获取将被发送到其作用域内任何 URL 的 cookie。从文档中,您只能获取当前 URL 的 cookie,因此在文档上下文中唯一有效的 URL 是文档的 URL。
返回值
一个 Promise,该 Promise 解析为一个对象,该对象代表与提交的 name 或 options 匹配的第一个 cookie,如果不存在匹配的 cookie,则为 null。
匹配时返回的对象包含以下属性
域-
包含 cookie 域名的字符串。
expires-
一个时间戳,以 Unix 时间(毫秒)给出,包含 cookie 的过期日期。
name-
包含 cookie 名称的字符串。
partitioned-
一个布尔值,指示 cookie 是否为分区 cookie(
true)或不是(false)。有关更多信息,请参阅 具有独立分区状态的 Cookie (CHIPS)。 路径-
包含 cookie 路径的字符串。
sameSitesecure-
一个布尔值,指示 cookie 是否仅用于安全上下文(
true)或不用于安全上下文(false)。 value-
包含 cookie 值的字符串。
异常
SecurityErrorDOMException-
如果源未能 序列化 为 URL,则抛出此错误。
TypeError-
在以下情况下抛出
options参数是一个空对象。- 该方法在主线程中调用,并且指定了
url选项,但该选项与当前窗口的 URL 不匹配。 - 该方法在 worker 中调用,并且指定了
url选项,但该选项与 worker 的源不匹配。 - 查询由给定
name或options表示的 cookie 失败。
示例
按名称获取 cookie
本示例展示了如何按名称获取特定 cookie。
代码首先使用 CookieStore.set() 创建一个名为“cookie1”的 cookie,并将任何错误记录到控制台。然后,它等待 get() 检索有关同一 cookie 的信息。如果返回的 Promise 解析为一个对象,则记录 cookie;否则,记录未找到匹配的 cookie。
async function cookieTest() {
// Set test cookie
try {
await cookieStore.set("cookie1", "cookie1-value");
} catch (error) {
console.log(`Error setting cookie1: ${error}`);
}
// Get cookie, specifying name
const cookie = await cookieStore.get("cookie1");
if (cookie) {
console.log(cookie);
} else {
console.log("cookie1: Cookie not found");
}
}
cookieTest();
规范
| 规范 |
|---|
| Cookie Store API # dom-cookiestore-get |
浏览器兼容性
加载中…