Headers: getSetCookie() 方法

Baseline 2023
新推出

自 2023 年 9 月起,此功能可在最新的裝置和瀏覽器版本上使用。此功能可能無法在較舊的裝置或瀏覽器上使用。

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

getSetCookie() 方法是 Headers 介面的一個方法,它返回一個數組,其中包含與響應關聯的所有 Set-Cookie 標頭的值。這使得 Headers 物件能夠處理多個 Set-Cookie 標頭,這是在其實現之前不可能做到的。

此方法旨在用於伺服器環境(例如 Node.js)。根據 Fetch 規範,瀏覽器會阻止前端 JavaScript 程式碼訪問 Set-Cookie 標頭,該規範將 Set-Cookie 定義為 禁止的響應標頭名稱,因此 必須從任何暴露給前端程式碼的響應中過濾掉

語法

js
getSetCookie()

引數

無。

返回值

一個字串陣列,代表與響應關聯的所有不同的 Set-Cookie 標頭的值。

如果沒有設定 Set-Cookie 標頭,該方法將返回一個空陣列([ ])。

示例

如上所述,在客戶端執行類似下面的程式碼將不會返回任何結果——Set-Cookie 從網路獲取的 Headers 中被過濾掉了。

js
fetch("https://example.com").then((response) => {
  console.log(response.headers.getSetCookie());
  // No header values returned
});

然而,下面可以使用此方法查詢多個 Set-Cookie 值。這在伺服器端更有用,但它在客戶端也可以正常工作。

js
const headers = new Headers({
  "Set-Cookie": "name1=value1",
});

headers.append("Set-Cookie", "name2=value2");

headers.getSetCookie();
// Returns ["name1=value1", "name2=value2"]

規範

規範
Fetch
# dom-headers-getsetcookie

瀏覽器相容性

另見