CookieStore: getAll() メソッド
Baseline
2025
最近利用可能
June 2025以降、この機能は最新のバージョンの端末およびブラウザーで動作します。古い端末やブラウザーでは動作しないことがあります。
Want more support for this feature? Tell us why.
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
メモ: この機能はサービスワーカー内で利用可能です。
getAll() は CookieStore インターフェイスのメソッドで、渡された名前またはオプションに一致する Cookie の配列で解決する Promise を返します。何も引数を渡さなければ、現在のコンテキストのすべての Cookie を返します。
構文
getAll()
getAll(name)
getAll(options)
引数
name省略可-
Cookie の名前が入っている文字列です。
または
options省略可-
以下のプロパティを持つ文字列です。
メモ:
url オプションは、特定の URL をスコープとした Cookie の変更を可能にします。サービスワーカーは、自分のスコープ下にある任意の URL に送信される Cookie を取得できます。文書からは現在の URL の Cookie しか取得できないので、文書コンテキストで有効な URL は文書の URL のみとなります。
返値
指定された name または options に一致する Cookie を表すオブジェクトの配列で解決する Promise です。
各オブジェクトは、以下のプロパティを持ちます。
domain-
Cookie のドメインを持つ文字列です。
expires-
Cookie の期限が入ったタイムスタンプで、ミリ秒単位の Unix 時刻です。
name-
Cookie の名前が入った文字列です。
partitioned-
論理値で、 Cookie がパーティション化 Cookie であるか (
true) そうでないか (false) を表します。詳しくは個別区画化された状態を持つ Cookie (CHIPS) を参照してください。 path-
Cookie のパスが入った文字列です。
sameSitesecure-
論理値で、この Cookie が保護されたコンテキストでのみ使用されるか (
true) またはそうではないか (false) を示します。 value-
この Cookie の値が入った文字列です。
例外
SecurityErrorDOMException-
オリジンが URL にシリアライズできない場合に発生します。
TypeError-
以下の場合に発生します。
- このメソッドがメインスレッドで呼び出され、
urlオプションが指定されているものの、現在のウィンドウの URL と一致していない。 - このメソッドはワーカー内で呼び出されており、
urlオプションが指定されていますが、その値はワーカーのオリジンと一致していない。 - 指定された
nameまたはoptionsで表される Cookie のクエリーに失敗した。
- このメソッドがメインスレッドで呼び出され、
例
このコンテキストのすべての Cookie を取得する
この例では、現在のコンテキストにあるすべての Cookie を取得する方法を示します。
まず、テスト用 Cookie ("cookie1" および "cookie2")を作成し、エラーが発生した場合はそれをログ出力する setTestCookies() を定義します。
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() の完了を待ちます。
これにより、このコンテキストのすべての Cookie をオブジェクトの配列として返す Promise が返されます。 Cookie がない場合は、空の配列が返されます。
返されたプロミスが 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> |