CookieStore: set() 方法

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

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

set() 方法是 CookieStore 接口的方法,用于使用给定的 namevalueoptions 对象设置 cookie。

语法

js
set(name, value)
set(options)

参数

此方法需要以下内容之一

name 可选

包含 cookie 名称的字符串。

value 可选

包含 cookie 值的字符串。

options 可选

包含以下内容的对象

domain 可选

包含 cookie 域的字符串。默认为 null

expires 可选

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

name

包含 cookie 名称的字符串。

partitioned 可选

布尔值,默认为 false。如果设置为 true,则设置的 cookie 将是分区 cookie。有关详细信息,请参阅 具有独立分区状态的 Cookie (CHIPS)

path 可选

包含 cookie 路径的字符串。默认为 /

sameSite 可选

以下 SameSite 值之一

"strict"

Cookie 仅在第一方上下文中发送,不会随第三方网站发起的请求一起发送。这是默认设置。

"lax"

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

"none"

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

value

包含 cookie 值的字符串。

返回值

一个 Promise,在设置 cookie 完成时解析为 undefined

异常

SecurityError DOMException

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

TypeError

如果使用给定的 namevalueoptions 设置 cookie 失败,则会抛出此异常。

示例

以下示例通过传递包含 namevalueexpiresdomain 的对象来设置 cookie。

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

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

规范

规范
Cookie Store API
# dom-cookiestore-set

浏览器兼容性

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