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.
Mit der Headers-Schnittstelle der Fetch API können Sie verschiedene Aktionen mit HTTP-Anfrage- und Antwort-Headern ausführen. Dazu gehören das Abrufen, Setzen, Ergänzen und Entfernen von Headern aus der Header-Liste einer Anfrage.
Sie können ein Headers-Objekt über die Eigenschaften Request.headers und Response.headers abrufen und mit dem Konstruktor Headers() ein neues Headers-Objekt erstellen. Im Vergleich zu einfachen Objekten bietet die Verwendung von Headers-Objekten beim Senden von Anfragen eine zusätzliche Bereinigung der Eingaben. Beispielsweise werden Header-Namen in Kleinbuchstaben umgewandelt, führende und nachfolgende Leerzeichen aus Header-Werten entfernt und das Setzen bestimmter Header verhindert.
Hinweis: Weitere Informationen zu den verfügbaren Headern finden Sie in unserer Referenz zu HTTP-Headern.
Konstruktor
Headers()-
Erstellt ein neues
Headers-Objekt.
Instanzmethoden
Headers.append()-
Hängt einen neuen Wert an einen vorhandenen Header in einem
Headers-Objekt an oder fügt den Header hinzu, falls er noch nicht existiert. Headers.delete()-
Entfernt einen Header aus einem
Headers-Objekt. Headers.entries()-
Gibt einen
iteratorzurück, mit dem Sie alle in diesem Objekt enthaltenen Schlüssel-Wert-Paare durchlaufen 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-Zeichenfolge mit allen Werten eines Headers mit dem angegebenen Namen in einemHeaders-Objekt zurück. -
Gibt ein Array mit den Werten aller mit einer Antwort verknüpften
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
iteratorzurück, mit dem Sie alle Schlüssel der in diesem Objekt enthaltenen Schlüssel-Wert-Paare durchlaufen können. Headers.set()-
Setzt einen neuen Wert für einen vorhandenen Header in einem
Headers-Objekt oder fügt den Header hinzu, falls er noch nicht existiert. Headers.values()-
Gibt einen
iteratorzurück, mit dem Sie alle Werte der in diesem Objekt enthaltenen Schlüssel-Wert-Paare durchlaufen können.
Hinweis:
Der Unterschied zwischen Headers.set() und Headers.append() besteht darin, dass Headers.set() den vorhandenen Wert durch den neuen Wert ersetzt, wenn der angegebene Header bereits existiert und mehrere Werte akzeptiert. Headers.append() hängt den neuen Wert dagegen an das Ende der Werteliste an. Codebeispiele finden Sie auf den jeweiligen Seiten.
Hinweis: Beim Durchlaufen von Header-Werten werden diese automatisch lexikografisch sortiert und Werte von Headern mit demselben Namen zusammengefasst.
Beschreibung
Ein Headers-Objekt verfügt über eine zugehörige Header-Liste, die anfangs leer ist und aus null oder mehr Namen-Wert-Paaren besteht. Mit Methoden wie append() können Sie Einträge hinzufügen (siehe Beispiele). Bei allen Methoden dieser Schnittstelle werden Header-Namen anhand einer Bytefolge ohne Berücksichtigung der Groß- und Kleinschreibung abgeglichen.
Ein Objekt, das Headers implementiert, kann anstelle von entries() direkt in einer for...of-Struktur verwendet werden: for (const p of myHeaders) ist gleichbedeutend mit for (const p of myHeaders.entries()).
Einschränkungen für Änderungen
Bei manchen Headers-Objekten gelten Einschränkungen dafür, ob die Methoden set(), delete() und append() Header ändern können. Diese Einschränkungen hängen davon ab, wie das Headers-Objekt erstellt wurde.
- Für Header, die mit dem Konstruktor
Headers()erstellt wurden, gelten keine Einschränkungen für Änderungen. - Für Header von
Request-Objekten gilt:- Wenn der
modeder Anfrageno-corsist, können Sie Namen und Werte von CORS-safelisted request headers ändern. - Andernfalls können Sie Namen und Werte von nicht verbotenen Anfrage-Headern ändern.
- Wenn der
- Für Header von
Response-Objekten gilt:- Wenn die Antwort mit
Response.error()oderResponse.redirect()erstellt oder durch einen Aufruf vonfetch()empfangen wurde, sind die Header unveränderlich. - Wenn die Antwort dagegen mit
Response()oderResponse.json()erstellt wurde, können Sie Namen und Werte von nicht verbotenen Antwort-Headern ändern.
- Wenn die Antwort mit
Alle Headers-Methoden lösen einen TypeError aus, wenn Sie einen Namen übergeben, der kein gültiger HTTP-Header-Name ist. Änderungsoperationen lösen einen TypeError aus, wenn der Header unveränderlich ist. In allen anderen Fehlerfällen schlagen sie ohne Fehlermeldung fehl.
Beispiele
Im folgenden Codeausschnitt erstellen wir mit dem Konstruktor Headers() ein neues Headers-Objekt, fügen ihm mit append() einen neuen Header hinzu und rufen anschließend dessen Wert mit get() ab:
const myHeaders = new Headers();
myHeaders.append("Content-Type", "text/xml");
myHeaders.get("Content-Type"); // should return 'text/xml'
Dasselbe lässt sich erreichen, indem dem Konstruktor ein Array von Arrays oder ein Objektliteral ü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> |