CookieStore: getAll() 方法
注意:此功能在 Service Workers 中可用。
CookieStore 介面的 getAll() 方法返回一個 Promise,該 Promise 解析為一個匹配傳遞給它的 name 或 options 的 cookie 陣列。不傳遞任何引數將返回當前上下文的所有 cookie。
語法
getAll()
getAll(name)
getAll(options)
引數
name可選-
一個包含 cookie 名稱的字串。
或者
options可選-
一個包含以下內容的 Shoppee 物件:
注意:url 選項允許修改特定 URL 下的 cookie。Service worker 可以獲取將傳送到其作用域下的任何 URL 的 cookie。從文件中,您只能獲取當前 URL 的 cookie,因此在文件上下文中唯一的有效 URL 是文件的 URL。
返回值
一個 Promise,它會解析為一個物件陣列,代表與給定 name 或 options 匹配的 cookie。
每個物件包含以下屬性:
域-
包含 cookie 域名的字串。
expires-
一個時間戳,以 Unix 時間(毫秒)給出,包含 cookie 的過期日期。
name-
包含 cookie 名稱的字串。
partitioned-
一個布林值,指示 cookie 是否為分割槽 cookie(
true)或不是(false)。有關更多資訊,請參閱 具有獨立分割槽狀態的 Cookie (CHIPS)。 路徑-
包含 cookie 路徑的字串。
sameSitesecure-
一個布林值,指示 cookie 是否僅用於安全上下文(
true)或不用於(false)。 value-
包含 cookie 值的字串。
異常
SecurityErrorDOMException-
如果源無法 序列化 為 URL,則丟擲此異常。
TypeError-
在以下情況下丟擲
- 該方法在主執行緒中呼叫,並且指定了
url選項,但該選項與當前視窗的 URL 不匹配。 - 該方法在 worker 中呼叫,並且指定了
url選項,但該選項與 worker 的源不匹配。 - 查詢由給定
name或options表示的 cookie 失敗。
- 該方法在主執行緒中呼叫,並且指定了
示例
獲取此上下文的所有 cookie
此示例展示瞭如何獲取當前上下文中的所有 cookie。
首先,我們定義 setTestCookies(),它建立測試 cookie "cookie1" 和 "cookie2",並記錄任何錯誤。
async function setTestCookies() {
// Set two cookies
try {
await cookieStore.set("cookie1", "cookie1-value");
} catch (error) {
console.log(`Error setting cookie1: ${error}`);
}
try {
await cookieStore.set("cookie2", "cookie2-value");
} catch (error) {
console.log(`Error setting cookie2: ${error}`);
}
}
cookieTest() 方法呼叫 setTestCookies(),然後等待 getAll()。這將返回一個 Promise,該 Promise 解析為當前上下文的所有 cookie,表示為一個物件陣列,如果沒有 cookie 則返回一個空陣列。如果返回的 Promise 解析為一個包含 cookie 資訊的陣列,我們會遍歷該陣列並記錄每個 cookie("cookie1" 和 "cookie2")。
async function cookieTest() {
// Set our test cookies
await setTestCookies();
// Get all cookies
const cookies = await cookieStore.getAll();
// Iterate the cookies, or log that none were found
if (cookies.length > 0) {
console.log(`Found cookies: ${cookies.length}:`);
cookies.forEach((cookie) => console.log(cookie));
} else {
console.log("Cookies not found");
}
}
規範
| 規範 |
|---|
| Cookie Store API # dom-cookiestore-getall |
瀏覽器相容性
載入中…