Start · Sprachen · JavaScript · Referenz · Headers.entries()

Headers.entries()

Methode

Gibt einen Iterator über alle <code>[name, wert]</code>-Paare eines <code>Headers</code>-Objekts zurück, sortiert und mit kleingeschriebenen Namen.

seit JavaScript Baseline: alle modernen Browser, Node.js 18+ (glob Kategorie: webapi

Signatur

Headers.prototype.entries()

Beschreibung

Die Methode entries() des Headers-Interface der Fetch-API gibt einen Iterator zurück, der jedes Header-Paar als zweielementiges Array [name, wert] liefert. Damit lassen sich alle Header einer Request oder Response durchlaufen, protokollieren oder in ein einfaches Objekt umwandeln.

Die Header-Namen werden dabei immer kleingeschrieben und lexikografisch sortiert ausgegeben. Mehrfach gesetzte Header mit demselben Namen (z. B. per append()) erscheinen zu einem Eintrag zusammengefasst, die Werte sind durch ", " getrennt. Die einzige Ausnahme ist Set-Cookie: Hier wird jeder Wert als eigener Eintrag geliefert (sofern der Header überhaupt lesbar ist).

entries() ist identisch mit dem Standard-Iterator headers[Symbol.iterator](). Man kann daher genauso gut direkt for (const [k, v] of headers) schreiben. Praktisch ist entries() vor allem in Kombination mit Object.fromEntries() oder dem Spread-Operator.

Rückgabewert

Typ
Iterator<[string, string]>
Beschreibung
Ein Iterator (Headers-Iterator), der für jeden Header ein Array [name, wert] liefert. Namen sind kleingeschrieben und sortiert.

Beispiele

Alle Header eines Headers-Objekts ausgeben

const headers = new Headers({
  'Content-Type': 'application/json',
  'X-Request-Id': 'abc123'
});
headers.append('Accept', 'text/html');
headers.append('Accept', 'application/json');

for (const [name, wert] of headers.entries()) {
  console.log(`${name}: ${wert}`);
}
accept: text/html, application/json content-type: application/json x-request-id: abc123

Antwort-Header in ein einfaches Objekt umwandeln

const ladeMitHeadern = async (url) => {
  const response = await fetch(url);
  const headerObjekt = Object.fromEntries(response.headers.entries());
  console.log(headerObjekt);
  return headerObjekt;
};

ladeMitHeadern('https://httpbin.org/get');
{ "content-length": "...", "content-type": "application/json", ... }

Header filtern und als Array weiterverarbeiten

const headers = new Headers({
  'X-Custom-A': '1',
  'Authorization': 'Bearer geheim',
  'X-Custom-B': '2'
});

// Nur eigene X-Header, sensible Header ausblenden
const eigeneHeader = [...headers.entries()]
  .filter(([name]) => name.startsWith('x-'));

console.log(eigeneHeader);
[ [ 'x-custom-a', '1' ], [ 'x-custom-b', '2' ] ]

// Wichtig · Fallstricke

  • Kleinschreibung: Die Namen kommen stets kleingeschrieben zurück – ein Vergleich mit 'Content-Type' schlägt fehl. Für gezielten Zugriff lieber headers.get() verwenden (Groß-/Kleinschreibung egal).
  • Zusammengefasste Werte: Mehrere gleichnamige Header werden zu einem durch ", " getrennten String verbunden. Für Set-Cookie gibt es headers.getSetCookie().
  • CORS: Bei Cross-Origin-Antworten sind nur „CORS-safelisted“ Header sowie die per Access-Control-Expose-Headers freigegebenen Header sichtbar. Bei mode: 'no-cors' (opake Antwort) ist der Iterator leer.
  • Einmal-Iterator: Der zurückgegebene Iterator ist nach einem Durchlauf erschöpft. Für mehrfache Nutzung erneut entries() aufrufen oder mit [...headers.entries()] in ein Array kopieren.
  • Kompatibilität: In allen modernen Browsern verfügbar; im Internet Explorer gibt es die Fetch-API nicht. In Node.js ist Headers ab Version 18 global verfügbar.