Headers
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit März 2017 browserübergreifend verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Das Headers-Interface der Fetch API ermöglicht 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 Header der Anfrage.
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. Im Vergleich zur Verwendung von einfachen Objekten bietet die Verwendung von Headers-Objekten für das Senden von Anfragen zusätzliche Eingabesäuberung. Zum Beispiel normalisiert es die Header-Namen in Kleinbuchstaben, entfernt führende und nachfolgende Leerzeichen von Header-Werten und verhindert, dass bestimmte Header gesetzt werden.
Hinweis: Mehr über die verfügbaren Header erfahren Sie in unserem Referenzdokument zu HTTP-Headern.
Beschreibung
Ein Headers-Objekt verfügt über eine zugehörige Header-Liste, die zunächst leer ist und aus null oder mehr Paaren von Namen und Werten besteht. Sie können dies mithilfe von Methoden wie append() hinzufügen (siehe Beispiele). In allen Methoden dieses Interfaces werden Header-Namen durch eine nicht case-sensitive Byte-Sequenz abgeglichen.
Ein Objekt, das Headers implementiert, kann direkt in einer for...of-Struktur verwendet werden, anstatt [entries()](/de/docs/Web/API/Headers/entries): for (const p of myHeaders)ist äquivalent zufor (const p of myHeaders.entries())`.
Einschränkungen bei Änderungen
Einige Headers-Objekte haben Einschrä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 wurde.
- Für Header, die mit dem
Headers()-Konstruktor erstellt wurden, gibt es keine Änderungsbeschränkungen. - Für Header von
Request-Objekten:- Wenn der
modeder Anfrageno-corsist, können Sie jeden CORS-Whitelist-Anfrage-Header Namen/Wert ändern. - Andernfalls können Sie jeden nicht verbotenen Anfrage-Header Namen/Wert ändern.
- Wenn der
- Für Header von
Response-Objekten:- Wenn die Antwort mit
Response.error()oderResponse.redirect()erstellt oder von einemfetch()Aufruf empfangen wird, sind die Header unveränderlich und können nicht modifiziert 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 Methoden von Headers werfen einen TypeError, wenn versucht wird, eine Referenz auf einen Namen zu übergeben, der kein gültiger HTTP-Header-Name ist. Die Änderungsoperationen werfen einen TypeError, wenn der Header unveränderlich ist. In jedem anderen Fehlerfall scheitern sie stillschweigend.
Konstruktor
Headers()-
Erstellt ein neues
Headers-Objekt.
Instanzmethoden
Headers.append()-
Fügt einen neuen Wert zu einem vorhandenen Header in einem
Headers-Objekt 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
iteratorzurück, mit dem Sie alle in diesem Objekt enthaltenen Schlüssel/Werte durchgehen können. 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 mit einer Antwort verknüpften
Set-Cookie-Header enthält. Headers.has()-
Gibt einen booleschen Wert zurück, der angibt, ob ein
Headers-Objekt einen bestimmten Header enthält. Headers.keys()-
Gibt einen
iteratorzurück, mit dem Sie alle Schlüssel der darin enthaltenen Schlüssel/Werte durchgehen können. Headers.set()-
Setzt einen neuen Wert für einen vorhandenen Header in einem
Headers-Objekt oder fügt den Header hinzu, wenn er noch nicht existiert. Headers.values()-
Gibt einen
iteratorzurück, mit dem Sie alle Werte der darin enthaltenen Schlüssel/Werte durchgehen können.
Hinweis:
Um klarzustellen: Der Unterschied zwischen Headers.set() und Headers.append() besteht darin, dass, wenn der angegebene Header bereits existiert und mehrere Werte akzeptiert, Headers.set() den bestehenden Wert durch den neuen überschreibt, während Headers.append() den neuen Wert am Ende der Wertemenge anhängt. Siehe deren spezielle Seiten für Beispielcode.
Hinweis: Wenn Header-Werte durchlaufen werden, werden sie automatisch in lexikographischer Reihenfolge sortiert, und Werte von doppelten Header-Namen werden kombiniert.
Beispiele
Im folgenden Ausschnitt erstellen wir einen neuen Header mit dem Headers()-Konstruktor, fügen mit append() einen neuen Header hinzu und geben dann den 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
| Spezifikation |
|---|
| Fetch # headers-class |