JavaScript/Objekte/Headers
Das Headers-Objekt im Fetch-API repräsentiert die HTTP-Header in einem HTTP-Request oder einer -Response und ist darin in der headers-Eigenschaft zu finden.
Du kannst ein Headers-Objekt selbst erzeugen, um sie in ein Request-Objekt für einen fetch-Aufruf einzusetzen. Dies muss beim Erzeugen des Request-Objekts über das RequestInit-Objekt geschehen, die headers-Eigenschaft im Request-Objekt kann nicht mehr geändert werden (der Inhalt des dort befindlichen Headers-Objekt aber schon).
Ein Headers-Objekt kann allerdings nur solange beliebig modifiziert werden, wie es keinem Request- oder Response-Objekt zugeordnet ist. Danach gelten folgende Regeln:
- Für Request-Objekte
- Beachte: Wenn Du versuchst, ein Request-Objekt zu erzeugen und dabei ein Headers-Objekt mitgibst, worin Header stehen, die in diesem Request-Objekt nicht geändert werden dürfen, werden sie nicht in das Request-Objekt übernommen.
- Für Response-Objekte
-
- erzeugt durch fetch(), Response.error() oder Response.redirect()
- Das Header-Objekt ist unveränderlich. Änderungsversuche werfen einen
TypeError - erzeugt durch new Response() oder Response.json()
- Header, die nicht verboten sind[2], dürfen geändert werden
ToDo (weitere ToDos)
Soweit dies ein Stub ist, schau bitte auf den Übersichtsseiten vom Fetch-API oder bei MDN unter Headers nach.
Inhaltsverzeichnis
Erzeugen eines Headers-Objekts
Headers-Objekte werden zumeist implizit erzeugt, aber du kannst auch explit die Konstruktorfunktion aufrufen.
const headers = new Headers( init );
init ist die Kopiervorlage für die Header, die sich im Headers-Objekt befinden sollen. Es gibt dafür drei Formen:
- ein Objektliteral, dessen Eigenschaftsnamen Header-Namen und die zugehörigen Werte die Header-Werte sind (als Strings)
- ein anderes Headers-Objekt
- ein Iterable, wie es von Object.fromEntries() verstanden wird.
Der Headers-Konstruktor akzeptiert alle Header. Die Prüfung, ob ein Header erlaubt ist, findet erst später statt.
Auslesen eines Headers-Objekts
Einfache Zugriffsmethiden
- Headers.get(name) -> string
- Headers.getSetCookie() -> Array<string>
- Headers.has(name) -> bool
Iterationsmethoden
- Headers.entries(name) -> Iterator<Array<string>>
- Headers.forEach(callback) -> bool
- Headers.keys() -> Iterator<string>
- Headers.values() -> Iterator<string>
Verändern eines Headers-Objekts
Ein Headers-Objekt, das unveränderlich ist, wirft bei Modifikationen einen TypeError!
- Headers.append()
- Headers.delete()
- Headers.set()
Links
- ↑ MDN: CORS safelisted request headers
- ↑ 2,0 2,1 MDN: Verbotene Request-Header