Headers
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017.
* Some parts of this feature may have varying levels of support.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Das Headers
Interface der Fetch API ermöglicht es Ihnen, verschiedene Aktionen mit HTTP-Anforderungs- und Antwortheadern durchzuführen. Diese Aktionen umfassen das Abrufen, Setzen, Hinzufügen zu und Entfernen von Headern aus der Liste der Header der Anfrage.
Ein Headers
-Objekt kann über die Eigenschaften Request.headers
und Response.headers
abgerufen und ein neues Headers
-Objekt mit dem Konstruktor Headers()
erstellt werden. Im Vergleich zur Verwendung von einfachen Objekten bietet die Nutzung von Headers
-Objekten zur Sendung von Anfragen eine zusätzliche Eingabesanitierung. Zum Beispiel normalisiert es Headernamen auf Kleinbuchstaben, entfernt führende und nachfolgende Leerzeichen von Headerwerten und verhindert das Setzen bestimmter Header.
Hinweis: Weitere Informationen über die verfügbaren Header finden Sie in unserem HTTP Headers Referenzdokument.
Beschreibung
Ein Headers
-Objekt hat eine zugeordnete Header-Liste, die anfangs leer ist und aus null oder mehr Namens- und Wertpaaren besteht. Sie können diese Liste mit Methoden wie append()
erweitern (siehe Beispiele). In allen Methoden dieses Interfaces werden Headernamen durch eine groß-/kleinschreibungunempfindliche Bytesequenz abgeglichen.
Ein Objekt, das Headers
implementiert, kann direkt in einer for...of
Struktur verwendet werden, anstelle von entries()
: for (const p of myHeaders)
entspricht for (const p of myHeaders.entries())
.
Änderungsbeschränkungen
Einige Headers
-Objekte haben Beschränkungen, ob die Methoden set()
, delete()
und append()
den Header ändern können. Die Änderungsbeschränkungen hängen davon ab, wie das Headers
-Objekt erstellt wird.
- Für Header, die mit dem
Headers()
Konstruktor erstellt wurden, gibt es keine Änderungsbeschränkungen. - Für Header von
Request
Objekten:- Wenn der
mode
der Anfrageno-cors
ist, können Sie jeden CORS-safelisted request header Name/Wert ändern. - Andernfalls können Sie jeden nicht verbotenen request header Name/Wert ändern.
- Wenn der
- Für Header von
Response
Objekten:- Wenn die Antwort mit
Response.error()
oderResponse.redirect()
erstellt oder von einemfetch()
Aufruf empfangen wurde, sind die Header unveränderlich und können nicht geändert werden. - Andernfalls, wenn die Antwort mit
Response()
oderResponse.json()
erstellt wurde, können Sie jeden nicht verbotenen response header Name/Wert ändern.
- Wenn die Antwort mit
Alle Methoden von Headers werfen einen TypeError
, wenn Sie versuchen, eine Referenz zu einem Namen zu übergeben, der kein gültiger HTTP-Headername ist. Die Mutationsoperationen werfen einen TypeError
, wenn der Header unveränderlich ist. In jedem anderen Fehlerfall schlagen sie leise fehl.
Konstruktor
Headers()
-
Erstellt ein neues
Headers
-Objekt.
Instanzmethoden
Headers.append()
-
Hängt einen neuen Wert an einen bestehenden Header innerhalb eines
Headers
-Objekts an oder fügt den Header hinzu, wenn er noch nicht existiert. Headers.delete()
-
Löscht einen Header aus einem
Headers
-Objekt. Headers.entries()
-
Gibt einen
Iterator
zurück, der es ermöglicht, durch alle Schlüssel/Wert-Paare in diesem Objekt zu gehen. Headers.forEach()
-
Führt eine bereitgestellte Funktion einmal für jedes Schlüssel/Wert-Paar in diesem
Headers
-Objekt aus. Headers.get()
-
Gibt eine
String
Sequenz aller Werte eines Headers innerhalb einesHeaders
-Objekts mit einem gegebenen Namen zurück. -
Gibt ein Array zurück, das die Werte aller
Set-Cookie
Header enthält, die mit einer Antwort verknüpft sind. Headers.has()
-
Gibt einen Boolean zurück, der angibt, ob ein
Headers
-Objekt einen bestimmten Header enthält. Headers.keys()
-
Gibt einen
Iterator
zurück, der es ermöglicht, durch alle Schlüssel der Schlüssel/Wert-Paare in diesem Objekt zu gehen. Headers.set()
-
Setzt einen neuen Wert für einen bestehenden Header innerhalb eines
Headers
-Objekts oder fügt den Header hinzu, wenn er noch nicht existiert. Headers.values()
-
Gibt einen
Iterator
zurück, der es ermöglicht, durch alle Werte der Schlüssel/Wert-Paare in diesem Objekt zu gehen.
Hinweis:
Um klarzustellen: Der Unterschied zwischen Headers.set()
und Headers.append()
besteht darin, dass, wenn der spezifizierte Header bereits existiert und mehrere Werte akzeptiert, Headers.set()
den vorhandenen Wert mit dem neuen überschreibt, während Headers.append()
den neuen Wert an das Ende der Wertmenge anhängt. Siehe ihre jeweiligen Seiten für Beispielcode.
Hinweis: Wenn Header-Werte über Iterationen durchlaufen werden, werden sie automatisch in lexikographischer Reihenfolge sortiert, und Werte von doppelten Headernamen werden kombiniert.
Beispiele
Im folgenden Beispiel erstellen wir einen neuen Header mit dem Headers()
Konstruktor, fügen einen neuen Header mit append()
hinzu und geben dann diesen Headerwert mit get()
zurück:
const myHeaders = new Headers();
myHeaders.append("Content-Type", "text/xml");
myHeaders.get("Content-Type"); // should return 'text/xml'
Dasselbe kann erreicht werden, indem ein Array von Arrays oder ein Objektliteral an den Konstruktor übergeben wird:
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'
Spezifikationen
Specification |
---|
Fetch # headers-class |
Browser-Kompatibilität
Report problems with this compatibility data on GitHubLegend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support
- No support
- No support
- See implementation notes.