cookies.set()
cookies
API 的 set()
方法设置包含指定 cookie 数据的 cookie。此方法相当于在请求给定 URL 时发出 HTTP Set-cookie
标头。
只有在你的 manifest.json 文件中包含“cookies” API 权限以及给定 URL 的主机权限时,调用才会成功。给定的 URL 也需要必要的权限来创建具有给定参数的 cookie。
这是一个返回 Promise
的异步函数。
语法
let setting = browser.cookies.set(
details, // 对象
);
参数
details
-
一个包含你想要设置的 cookie 详细信息的
object
。它可以包含以下属性:domain
可选-
一个表示 cookie 域的
string
。如果省略,cookie 将成为仅限主机(host-only)的 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 的默认域和值路径。如果清单(manifest)文件中未指定此 URL 的主机权限,则方法调用将失败。 value
可选-
一个表示 cookie 值的
string
。如果省略,默认为空。
返回值
一个 Promise
,它会兑现一个包含已设置 cookie 详细信息的 cookies.Cookie
对象。如果由于任何原因调用失败,Promise 会以错误消息拒绝。
浏览器兼容性
BCD tables only load in the browser
示例
此示例为当前活动标签页托管的文档设置一个 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
。