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.
Hinweis: Dieses Feature ist verfügbar in Web Workers.
Das Headers
-Interface der Fetch API ermöglicht es Ihnen, verschiedene Aktionen auf HTTP-Anfrage- und Antwort-Headern durchzuführen. Diese Aktionen umfassen das Abrufen, Setzen, Hinzufügen zu und Entfernen von Headern aus der Liste der Anfrage-Header.
Sie können ein Headers
-Objekt über die Eigenschaften Request.headers
und Response.headers
abrufen und ein neues Headers
-Objekt mit dem Headers()
Konstruktor erstellen.
Hinweis: Mehr über die verfügbaren Header erfahren Sie in unserem HTTP-Header Referenz.
Beschreibung
Ein Headers
-Objekt hat eine zugehörige Header-Liste, die anfänglich leer ist und aus null oder mehr Namens-Wert-Paaren besteht. Sie können diese mit Methoden wie append()
ergänzen (siehe Beispiele). In allen Methoden dieses Interfaces werden Header-Namen anhand einer groß-/kleinschreibungsunabhängigen Bytefolge abgeglichen.
Ein Objekt, das Headers
implementiert, kann direkt in einer for...of
Struktur verwendet werden, anstelle von entries()
: for (const p of myHeaders)
ist gleichbedeutend mit for (const p of myHeaders.entries())
.
Einschränkungen bei der Modifikation
Einige Headers
-Objekte haben Einschränkungen, ob die Methoden set()
, delete()
und append()
den Header ändern können. Die Modifikationseinschränkungen sind je nach Erstellung des Headers
-Objekts festgelegt.
- Für Header, die mit dem
Headers()
-Konstruktor erstellt wurden, gibt es keine Einschränkungen bei der Modifikation. - Für Header von
Request
-Objekten:- Wenn der
mode
der Anfrageno-cors
ist, können Sie jeden CORS-freigegebenen Anfrage-Header Namen/Wert ändern. - Andernfalls können Sie jeden nicht verbotenen Header Namen/Wert ändern.
- Wenn der
- Für Header von
Response
-Objekten:- Wenn die Antwort mit
Response.error()
oderResponse.redirect()
erstellt wird, oder von einemfetch()
-Aufruf empfangen wird, sind die Header unveränderlich und können nicht geändert werden. - Andernfalls, wenn die Antwort mit
Response()
oderResponse.json()
erstellt wird, können Sie jeden nicht verbotenen Antwort-Header Namen/Wert ändern.
- Wenn die Antwort mit
Alle Header-Methoden werfen einen TypeError
, wenn Sie versuchen, eine Referenz auf einen 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 unauffällig fehl.
Konstruktor
Headers()
-
Erstellt ein neues
Headers
-Objekt.
Instanzmethoden
Headers.append()
-
Fügt einen neuen Wert einem vorhandenen Header innerhalb eines
Headers
-Objekts hinzu 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 das Durchlaufen aller Schlüssel-/Wertpaare in diesem Objekt ermöglicht. Headers.forEach()
-
Führt eine bereitgestellte Funktion einmal für jedes Schlüssel-/Wertpaar in diesem
Headers
-Objekt aus. Headers.get()
-
Gibt eine
String
-Sequenz aller Werte eines Headers in einemHeaders
-Objekt mit einem bestimmten Namen zurück. -
Gibt ein Array mit den Werten aller mit einer Antwort verbundenen
Set-Cookie
Header zurück. Headers.has()
-
Gibt einen booleschen Wert zurück, der angibt, ob ein
Headers
-Objekt einen bestimmten Header enthält. Headers.keys()
-
Gibt einen
iterator
zurück, der Ihnen ermöglicht, alle Schlüssel der in diesem Objekt enthaltenen Schlüssel-/Wertpaare zu durchlaufen. Headers.set()
-
Setzt einen neuen Wert für einen vorhandenen Header innerhalb eines
Headers
-Objekts oder fügt den Header hinzu, wenn er noch nicht existiert. Headers.values()
-
Gibt einen
iterator
zurück, der Ihnen ermöglicht, alle Werte der in diesem Objekt enthaltenen Schlüssel-/Wertpaare zu durchlaufen.
Hinweis: Um klar zu sein: Der Unterschied zwischen Headers.set()
und Headers.append()
besteht darin, dass wenn der angegebene Header bereits existiert und mehrere Werte akzeptiert, Headers.set()
den existierenden Wert mit dem neuen überschreibt, während Headers.append()
den neuen Wert am Ende der Wertemenge anfügt. Siehe deren dedizierte Seiten für Beispielcode.
Hinweis: Wenn Header-Werte iteriert werden, werden sie automatisch in lexikografischer Reihenfolge sortiert und Werte von doppelten Header-Namen werden kombiniert.
Beispiele
Im folgenden Beispiel erstellen wir einen neuen Header mit dem Headers()
-Konstruktor, fügen ihm mit append()
einen neuen Header hinzu und geben dann diesen Header-Wert mit get()
zurück:
const myHeaders = new Headers();
myHeaders.append("Content-Type", "text/xml");
myHeaders.get("Content-Type"); // should return 'text/xml'
Das gleiche 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 Standard # headers-class |
Browser-Kompatibilität
BCD tables only load in the browser