此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

CookieStore:set() 方法

基线 2025
最近可用
*

自 2025年6月 起,此特性已在最新浏览器中得到支持。但在较旧的设备或浏览器中可能无法运行。

Want more browser support for this feature? Tell us why.

* 此特性的某些部分的支持程度可能有所不同。

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

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

CookieStore 接口的 set() 方法通过给定的 name 和 value 或 options 对象设置 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 成功时兑现为 undefined 的 Promise。

异常

SecurityError DOMException

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

TypeError

如果通过给定的 name 和 value 或 options 设置 cookie 失败,则抛出该异常。

示例

以下示例通过传递一个带有 name, value, expires 和 domain 的对象设置 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

浏览器兼容性