cookies.set()
该 set()
方法 cookies
API 设置一个包含指定 cookie 数据的 cookie。此方法等效于在对给定 URL 的请求期间发出 HTTP Set-Cookie
标头。
只有在您在 manifest.json 文件中包含“cookies” API 权限 以及在其清单中指定给定 URL 的 主机权限 时,调用才会成功。给定的 URL 还需要必要的权限才能使用给定的参数创建 cookie。
这是一个返回 Promise
的异步函数。
语法
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
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
。