XMLHttpRequest: getAllResponseHeaders() Methode

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Hinweis: Diese Funktion ist in Web Workers verfügbar, mit Ausnahme von Service Workers.

Die Methode getAllResponseHeaders() des XMLHttpRequest gibt alle Antwort-Header, getrennt durch CRLF, als Zeichenkette zurück oder null, wenn keine Antwort empfangen wurde.

Wenn ein Netzwerkfehler aufgetreten ist, wird eine leere Zeichenkette zurückgegeben.

Hinweis: Bei Multipart-Anfragen gibt dies die Header des aktuellen Teils der Anfrage zurück, nicht vom ursprünglichen Kanal.

Syntax

js
getAllResponseHeaders()

Parameter

Keine.

Rückgabewert

Eine Zeichenkette, die alle Antwort-Header darstellt (außer denen, deren Feldname Set-Cookie ist), getrennt durch CRLF, oder null, wenn keine Antwort empfangen wurde. Bei einem Netzwerkfehler wird eine leere Zeichenkette zurückgegeben.

Ein Beispiel dafür, wie eine rohe Header-Zeichenkette aussieht:

http
date: Fri, 08 Dec 2017 21:04:30 GMT\r\n
content-encoding: gzip\r\n
x-content-type-options: nosniff\r\n
server: meinheld/0.6.1\r\n
x-frame-options: DENY\r\n
content-type: text/html; charset=utf-8\r\n
connection: keep-alive\r\n
strict-transport-security: max-age=63072000\r\n
vary: Cookie, Accept-Encoding\r\n
content-length: 6502\r\n
x-xss-protection: 1; mode=block\r\n

Jede Zeile wird durch sowohl Wagenrücklauf- als auch Zeilenvorschubzeichen (\r\n) beendet. Diese dienen im Wesentlichen als Trennzeichen, die jeden der Header voneinander abtrennen.

Hinweis: In modernen Browsern werden die Header-Namen gemäß der neuesten Spezifikation in Kleinschreibung zurückgegeben.

Beispiele

Dieses Beispiel untersucht die Header im readystatechange-Ereignis der Anfrage. Der Code zeigt, wie man die rohe Header-Zeichenkette erhält, sie in ein Array einzelner Header umwandelt und anschließend eine Zuordnung der Header-Namen zu ihren Werten erstellt.

js
const request = new XMLHttpRequest();
request.open("GET", "foo.txt", true);
request.send();

request.onreadystatechange = () => {
  if (request.readyState === this.HEADERS_RECEIVED) {
    // Get the raw header string
    const headers = request.getAllResponseHeaders();

    // Convert the header string into an array
    // of individual headers
    const arr = headers.trim().split(/[\r\n]+/);

    // Create a map of header names to values
    const headerMap = {};
    arr.forEach((line) => {
      const parts = line.split(": ");
      const header = parts.shift();
      const value = parts.join(": ");
      headerMap[header] = value;
    });
  }
};

Sobald dies erledigt ist, können Sie beispielsweise:

js
const contentType = headerMap["content-type"];

Dies erhält den Wert des Content-Type-Headers in der Variablen contentType.

Spezifikationen

Specification
XMLHttpRequest
# the-getallresponseheaders()-method

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
getAllResponseHeaders
Header names returned in all lower case

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
See implementation notes.

Siehe auch