CookieStore: get() 方法

基線 2025 *
新推出

自 2025 年 6 月起,此功能已在最新的裝置和瀏覽器版本中可用。此功能可能不適用於舊裝置或瀏覽器。

* 此特性的某些部分可能存在不同級別的支援。

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

注意:此功能在 Service Workers 中可用。

CookieStore 介面的 get() 方法返回一個 Promise,該 Promise 解析為一個與給定的 nameoptions 物件匹配的單個 cookie。該方法將返回第一個匹配的 cookie。

語法

js
get(name)
get(options)

引數

此方法需要以下之一:

name 可選

一個包含 cookie 名稱的字串。

或者

options 可選

一個包含以下內容的 Shoppee 物件:

name

一個包含 cookie 名稱的字串。

url

包含 cookie URL 的字串。

注意: url 選項允許修改特定 URL 範圍內的 cookie。Service worker 可以獲取將被髮送到其作用域內任何 URL 的 cookie。從文件中,您只能獲取當前 URL 的 cookie,因此在文件上下文中唯一有效的 URL 是文件的 URL。

返回值

一個 Promise,該 Promise 解析為一個物件,該物件代表與提交的 nameoptions 匹配的第一個 cookie,如果不存在匹配的 cookie,則為 null

匹配時返回的物件包含以下屬性

包含 cookie 域名的字串。

expires

一個時間戳,以 Unix 時間(毫秒)給出,包含 cookie 的過期日期。

name

包含 cookie 名稱的字串。

partitioned

一個布林值,指示 cookie 是否為分割槽 cookie(true)或不是(false)。有關更多資訊,請參閱 具有獨立分割槽狀態的 Cookie (CHIPS)

路徑

包含 cookie 路徑的字串。

sameSite

以下 SameSite 值之一:"strict""lax""none"

secure

一個布林值,指示 cookie 是否僅用於安全上下文(true)或不用於安全上下文(false)。

value

包含 cookie 值的字串。

異常

SecurityError DOMException

如果源未能 序列化 為 URL,則丟擲此錯誤。

TypeError

在以下情況下丟擲

  • options 引數是一個空物件。
  • 該方法在主執行緒中呼叫,並且指定了 url 選項,但該選項與當前視窗的 URL 不匹配。
  • 該方法在 worker 中呼叫,並且指定了 url 選項,但該選項與 worker 的源不匹配。
  • 查詢由給定 nameoptions 表示的 cookie 失敗。

示例

本示例展示瞭如何按名稱獲取特定 cookie。

程式碼首先使用 CookieStore.set() 建立一個名為“cookie1”的 cookie,並將任何錯誤記錄到控制檯。然後,它等待 get() 檢索有關同一 cookie 的資訊。如果返回的 Promise 解析為一個物件,則記錄 cookie;否則,記錄未找到匹配的 cookie。

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

  // Get cookie, specifying name
  const cookie = await cookieStore.get("cookie1");

  if (cookie) {
    console.log(cookie);
  } else {
    console.log("cookie1: Cookie not found");
  }
}

cookieTest();

規範

規範
Cookie Store API
# dom-cookiestore-get

瀏覽器相容性