cookies.set()

set() 方法 cookies API 设置一个包含指定 cookie 数据的 cookie。此方法等效于在对给定 URL 的请求期间发出 HTTP Set-Cookie 标头。

只有在您在 manifest.json 文件中包含“cookies” API 权限 以及在其清单中指定给定 URL 的 主机权限 时,调用才会成功。给定的 URL 还需要必要的权限才能使用给定的参数创建 cookie。

这是一个返回 Promise 的异步函数。

语法

js
let setting = browser.cookies.set(
  details               // object
)

参数

details

一个包含您希望设置的 cookie 的详细信息的 object。它可以具有以下属性

domain 可选

表示 cookie 域的 string。如果省略,cookie 将成为仅限主机的 cookie。

expirationDate 可选

一个表示 cookie 过期日期的 number,以自 UNIX 纪元以来的秒数表示。如果省略,cookie 将成为会话 cookie。

firstPartyDomain 可选

表示 cookie 将与其关联的第一方域的 string。如果浏览器启用了第一方隔离,则必须提供此属性。请参阅 第一方隔离

httpOnly 可选

一个 boolean,指定 cookie 是否应标记为 HttpOnly (true) 或不标记 (false)。如果省略,则默认为 false。

name 可选

表示 cookie 名称的 string。如果省略,则默认为空。

partitionKey 可选

一个表示 存储分区object,用于在其中设置 cookie。包含此对象可在分区存储中设置 cookie。此对象包含

topLevelSite 可选

一个表示包含 cookie 的顶级站点存储分区的首方 URL 的 string

path 可选

表示 cookie 路径的 string。如果省略,则默认为 URL 参数的路径部分。

sameSite 可选

一个 cookies.SameSiteStatus 值,指示 cookie 的 SameSite 状态。如果省略,则默认为 0,'no_restriction'。

secure 可选

一个 boolean,指定 cookie 是否应标记为安全 (true) 或不安全 (false)。如果省略,则默认为 false。

storeId 可选

一个表示要设置 cookie 的 cookie 存储 ID 的 string。如果省略,则默认在当前执行上下文的 cookie 存储中设置 cookie。

url

一个表示要与 cookie 关联的请求 URI 的 string。此值会影响创建的 cookie 的默认域和路径值。如果清单文件中未指定此 URL 的主机权限,则方法调用将失败。

value 可选

表示 cookie 值的 string。如果省略,则默认为空。

返回值

一个 Promise,它将使用一个 cookies.Cookie 对象来完成,该对象包含有关已设置 cookie 的详细信息。如果调用因任何原因失败,则 promise 将被拒绝并显示错误消息。

浏览器兼容性

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

示例

此示例为当前活动选项卡中托管的文档设置 cookie

js
let getActive = browser.tabs.query({ active: true, currentWindow: true });
getActive.then(setCookie);

function setCookie(tabs) {
  browser.cookies.set({
    url: tabs[0].url,
    name: "favorite-color",
    value: "red",
  });
}

扩展示例

注意:此 API 基于 Chromium 的 chrome.cookies API。本文档来自 Chromium 代码中的 cookies.json