CookieStore:set() 方法

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

安全上下文: 此项功能仅在一些支持的浏览器安全上下文(HTTPS)中可用。

备注: 此特性在 Web Worker 中可用。

CookieStore 接口的 set() 方法通过给定的 namevalueoptions 对象设置 cookie。

语法

js
set(name, value)
set(options)

参数

此方法需要以下任意一个:

name 可选

记录 cookie 名称的字符串。

value 可选

表示 cookie 值的字符串。

options 可选

一个包括以下属性的对象:

domain 可选

记录 cookie 域名的字符串。默认为 null

expires 可选

Unix 时间戳(以毫秒为单位表示),记录 cookie 的到期日期。默认为 null

name

记录 cookie 名称的字符串。

partitioned 可选

一个布尔值,表示 cookie 是否是分区 cookie(true)或(false)。更多信息请参阅 具有独立分区状态的 Cookie(CHIPS)

path 可选

记录 cookie 路径的字符串。默认为 /

sameSite 可选

以下 SameSite 的值之一:

"strict"

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

"lax"

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

"none"

Cookie 将被发送至所有上下文。

value

表示 cookie 的值的字符串。

返回值

设置 Cookie 成功时兑现为 undefinedPromise

异常

SecurityError DOMException

如果源无法被序列化成 URL,则抛出该异常。

TypeError

如果通过给定的 namevalueoptions 设置 cookie 失败,则抛出该异常。

示例

以下示例通过传递一个带有 name, value, expiresdomain 的对象设置 cookie。

js
const day = 24 * 60 * 60 * 1000;

cookieStore.set({
  name: "cookie1",
  value: "cookie1-value",
  expires: Date.now() + day,
  domain: "example.com",
});

规范

Specification
Cookie Store API
# dom-cookiestore-set

浏览器兼容性

BCD tables only load in the browser