このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

CookieStore: set() メソッド

Baseline 2025 *
最近利用可能

June 2025以降、この機能は最新のバージョンの端末およびブラウザーで動作します。古い端末やブラウザーでは動作しないことがあります。

Want more support for this feature? Tell us why.

* この機能の一部は、対応レベルが異なる場合があります。

安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

メモ: この機能はサービスワーカー内で利用可能です。

set()CookieStore インターフェイスのメソッドで、渡された名前またはオプションオブジェクトに一致する Cookie のリストを返します。

構文

js
set(name, value)
set(options)

引数

このメソッドは、以下のいずれかが必要です。

name 省略可

Cookie の名前の文字列です。

value 省略可

Cookie の値の文字列です。

または

options 省略可

オブジェクトは次のものを含みます。

  • domain 省略可
    • : Cookie のドメインが入った文字列です。
  • expires 省略可
    • : ミリ秒単位の Unix 時間によるタイムスタンプで、Cookie の有効期限が入ります。デフォルト値は null です。
  • maxAge 省略可
    • : Cookie が失効するまでの秒数を表す数値です。0 または負の数値を指定すると、Cookie は直ちに失効します。expiresmaxAge の両方が設定されている場合、set() の呼び出しは TypeError を発生させて失敗します。デフォルトは null です。
  • name
    • : Cookie の名前が入った文字列です。
  • partitioned 省略可
  • path 省略可
    • : Cookie のパスの入った文字列です。デフォルト値は / です。
  • sameSite 省略可

SameSite 値("strict""lax""none")のいずれかです。

value

Cookie の値が入った文字列です。

メモ: ここで値を設定することは可能であり、内部的にはその値が使用されますが、一部のブラウザーでは、CookieStore.get() および CookieStore.getAll() から namevalue のオプションのみが返される場合があります。

返値

Cookie の設定が完了すると undefined に解決される Promise です。

例外

SecurityError DOMException

オリジンが URL にシリアライズできない場合に発生します。

TypeError

以下の場合に発生します。

  • expires プロパティと maxAge プロパティの両方が設定されている。
  • 指定された name および value、あるいは options をつけて Cookie を設定しようとしたところ、何らかの理由で失敗しした。

この例では、name に "cookie1"、value に "cookie1-value" をそれぞれ指定して、Cookie を設定しています。 Cookie のその他のプロパティは、options 引数で定義されているデフォルト値で設定されます。

コードはまず、Cookie が設定されるのを待ちます。この操作は失敗する可能性があるため、try...catch ブロック内で実行され、エラーが発生した場合はコンソールにログ出力されます。 その後、設定されたばかりの Cookie を取得して、コンソールにログ出力します。

js
async function cookieTest() {
  // Set cookie: passing name and value
  try {
    await cookieStore.set("cookie1", "cookie1-value");
  } catch (error) {
    console.log(`Error setting cookie1: ${error}`);
  }

  // Get the cookie and log its values
  const cookie = await cookieStore.get("cookie1");
  console.log(cookie);
}

この例では、namevalueexpirespartitioned を含む options オブジェクトを渡すことで、Cookie を設定します。 コードはまず、Cookie が設定されるのを待ちます。この操作は失敗する可能性があるため、try...catch ブロック内で実行され、エラーが発生した場合はコンソールに記録されます。 その後、設定されたばかりの Cookie を取得して、コンソールに記録します。

js
async function cookieTest() {
  const day = 24 * 60 * 60 * 1000;
  const cookieName = "cookie2";
  try {
    // Set cookie: passing options
    await cookieStore.set({
      name: cookieName,
      value: `${cookieName}-value`,
      expires: Date.now() + day,
      partitioned: true,
    });
  } catch (error) {
    log(`Error setting ${cookieName}: ${error}`);
    console.log(error);
  }

  // Log the new cookie
  const cookie = await cookieStore.get(cookieName);
  console.log(cookie);
}

仕様書

仕様書
Cookie Store API
# dom-cookiestore-set

ブラウザーの互換性