標頭

Baseline 廣泛可用 *

此特性已得到良好確立,可跨多種裝置和瀏覽器版本使用。自 2017 年 3 月起,所有瀏覽器均支援此特性。

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

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

Headers 介面是 Fetch API 的一部分,允許你對 HTTP 請求和響應頭 執行各種操作。這些操作包括檢索、設定、新增和刪除請求頭列表中的頭。

你可以透過 Request.headersResponse.headers 屬性獲取 Headers 物件,並使用 Headers() 建構函式建立一個新的 Headers 物件。與使用純物件相比,使用 Headers 物件傳送請求會提供一些額外的輸入清理。例如,它會將頭名稱規範化為小寫,去除頭值前後的空格,並阻止某些頭被設定。

注意: 你可以透過閱讀我們的 HTTP Headers 參考文件來了解更多可用的頭。

描述

Headers 物件有一個關聯的頭列表,該列表最初為空,由零個或多個名稱和值對組成。你可以使用 append() 等方法向列表中新增內容(參見 示例)。在此介面的所有方法中,頭名稱匹配時將忽略大小寫,按位元組序列進行比較。

實現 Headers 的物件可以直接用在 for...of 結構中,而不是使用 entries()for (const p of myHeaders) 等同於 for (const p of myHeaders.entries())

修改限制

某些 Headers 物件對 set()delete()append() 方法是否能修改頭有修改限制。修改限制會根據 Headers 物件的建立方式來設定。

如果你嘗試傳遞一個無效的 HTTP 頭名稱 的引用,所有 Headers 方法都會丟擲一個 TypeError。如果頭是不可變的,修改操作會丟擲 TypeError。在任何其他失敗情況下,它們會靜默失敗。

建構函式

Headers()

建立一個新的 Headers 物件。

例項方法

Headers.append()

Headers 物件中,向現有頭追加新值,或者在頭不存在時新增該頭。

Headers.delete()

Headers 物件中刪除一個頭。

Headers.entries()

返回一個 iterator,允許遍歷該物件中包含的所有鍵/值對。

Headers.forEach()

Headers 物件中的每個鍵/值對執行一次提供的函式。

Headers.get()

在具有給定名稱的 Headers 物件中,返回一個包含該頭所有值的 String 序列。

Headers.getSetCookie()

返回一個數組,其中包含與響應關聯的所有 Set-Cookie 頭的值。

Headers.has()

返回一個布林值,指示 Headers 物件是否包含某個頭。

Headers.keys()

返回一個 iterator,允許遍歷該物件中包含的所有鍵/值對的鍵。

Headers.set()

Headers 物件中,為現有頭設定新值,或者在頭不存在時新增該頭。

Headers.values()

返回一個 iterator,允許遍歷該物件中包含的所有鍵/值對的值。

注意: 需要明確的是,Headers.set()Headers.append() 之間的區別是,如果指定的頭已經存在且接受多個值,Headers.set() 會用新值覆蓋現有值,而 Headers.append() 會將新值追加到現有值集合的末尾。請參閱它們各自的頁面以獲取示例程式碼。

注意: 當迭代頭的值時,它們會自動按字典順序排序,並且來自重複頭名稱的值會被合併。

示例

在下面的程式碼片段中,我們使用 Headers() 建構函式建立一個新的頭,然後使用 append() 向其新增一個新頭,最後使用 get() 返回該頭的值。

js
const myHeaders = new Headers();

myHeaders.append("Content-Type", "text/xml");
myHeaders.get("Content-Type"); // should return 'text/xml'

透過向建構函式傳遞陣列的陣列或物件字面量,也可以實現相同的功能。

js
let myHeaders = new Headers({
  "Content-Type": "text/xml",
});

// or, using an array of arrays:
myHeaders = new Headers([["Content-Type", "text/xml"]]);

myHeaders.get("Content-Type"); // should return 'text/xml'

規範

規範
Fetch
# headers-class

瀏覽器相容性

另見