Request

Baseline Widely available *

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

* Some parts of this feature may have varying levels of support.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Die Request-Schnittstelle der Fetch API repräsentiert eine Ressourcenanforderung.

Sie können ein neues Request-Objekt mit dem Request()-Konstruktor erstellen, aber es ist wahrscheinlicher, dass Sie ein Request-Objekt als Ergebnis einer anderen API-Operation erhalten, wie beispielsweise ein Service Worker FetchEvent.request.

Konstruktor

Request()

Erstellt ein neues Request-Objekt.

Instanz-Eigenschaften

Request.body Schreibgeschützt

Ein ReadableStream des Inhalts des Körpers.

Request.bodyUsed Schreibgeschützt

Speichert true oder false, um anzuzeigen, ob der Körper in einer Anfrage bereits verwendet wurde oder nicht.

Request.cache Schreibgeschützt

Enthält den Cache-Modus der Anfrage (z.B. default, reload, no-cache).

Request.credentials Schreibgeschützt

Enthält einen Wert, der steuert, ob Anmeldeinformationen mit der Anfrage gesendet werden sollen (z.B. omit, same-origin, include). Der Standardwert ist same-origin.

Request.destination Schreibgeschützt

Ein String, der den Typ des angeforderten Inhalts beschreibt.

Request.headers Schreibgeschützt

Enthält das zugehörige Headers-Objekt der Anfrage.

Request.integrity Schreibgeschützt

Enthält den Subresource Integrity-Wert der Anfrage (z.B. sha256-BpfBw7ivV8q2jLiT13fxDYAe2tJllusRSZ273h2nFSE=).

Request.isHistoryNavigation Schreibgeschützt

Ein Boolean, das anzeigt, ob die Anfrage eine Verlauf-Navigation ist.

Request.keepalive Schreibgeschützt

Enthält die keepalive-Einstellung der Anfrage (true oder false), was anzeigt, ob der Browser die zugehörige Anfrage aufrechterhält, wenn die Seite, die sie initiiert hat, entladen wird, bevor die Anfrage abgeschlossen ist.

Request.method Schreibgeschützt

Enthält die Methode der Anfrage (GET, POST, etc.)

Request.mode Schreibgeschützt

Enthält den Modus der Anfrage (z.B. cors, no-cors, same-origin, navigate).

Request.redirect Schreibgeschützt

Enthält den Modus, wie Weiterleitungen behandelt werden. Es kann follow, error oder manual sein.

Request.referrer Schreibgeschützt

Enthält den Referenzgeber der Anfrage (z.B. client).

Request.referrerPolicy Schreibgeschützt

Enthält die Referrer-Policy der Anfrage (z.B. no-referrer).

Request.signal Schreibgeschützt

Gibt das AbortSignal zurück, das mit der Anfrage verbunden ist.

Request.url Schreibgeschützt

Enthält die URL der Anfrage.

Instanz-Methoden

Request.arrayBuffer()

Gibt ein Promise zurück, das mit einer ArrayBuffer-Darstellung des Anfragekörpers aufgelöst wird.

Request.blob()

Gibt ein Promise zurück, das mit einer Blob-Darstellung des Anfragekörpers aufgelöst wird.

Request.bytes()

Gibt ein Promise zurück, das mit einer Uint8Array-Darstellung des Anfragekörpers aufgelöst wird.

Request.clone()

Erstellt eine Kopie des aktuellen Request-Objekts.

Request.formData()

Gibt ein Promise zurück, das mit einer FormData-Darstellung des Anfragekörpers aufgelöst wird.

Request.json()

Gibt ein Promise zurück, das mit dem Ergebnis des Parsens des Anfragekörpers als JSON aufgelöst wird.

Request.text()

Gibt ein Promise zurück, das mit einer Textdarstellung des Anfragekörpers aufgelöst wird.

Hinweis: Die Funktionen des Anfragekörpers können nur einmal ausgeführt werden; nachfolgende Aufrufe werden mit einem TypeError abgelehnt, der anzeigt, dass der Körperstream bereits verwendet wurde.

Beispiele

Im folgenden Schnipsel erstellen wir eine neue Anfrage mit dem Request()-Konstruktor (für eine Bilddatei im selben Verzeichnis wie das Skript) und geben dann einige Eigenschaftswerte der Anfrage zurück:

js
const request = new Request("https://www.mozilla.org/favicon.ico");

const url = request.url;
const method = request.method;
const credentials = request.credentials;

Sie könnten diese Anfrage dann durch Übergeben des Request-Objekts als Parameter an einen fetch()-Aufruf einholen, zum Beispiel:

js
fetch(request)
  .then((response) => response.blob())
  .then((blob) => {
    image.src = URL.createObjectURL(blob);
  });

Im folgenden Schnipsel erstellen wir eine neue Anfrage mit dem Request()-Konstruktor mit einigen Anfangsdaten und Körperinhalten für eine API-Anfrage, die eine Körpernutzlast benötigt:

js
const request = new Request("https://example.com", {
  method: "POST",
  body: '{"foo": "bar"}',
});

const url = request.url;
const method = request.method;
const credentials = request.credentials;
const bodyUsed = request.bodyUsed;

Hinweis: Der Körper kann nur ein Blob, ein ArrayBuffer, ein TypedArray, ein DataView, ein FormData, ein URLSearchParams, ein ReadableStream oder ein String-Objekt sowie ein Zeichenfolgewert sein. Daher müssen Sie zum Hinzufügen eines JSON-Objekts zur Nutzlast dieses Objekt in eine Zeichenfolge umwandeln.

Sie könnten diese API-Anfrage dann durch Übergeben des Request-Objekts als Parameter an einen fetch()-Aufruf einholen und die Antwort erhalten, zum Beispiel:

js
fetch(request)
  .then((response) => {
    if (response.status !== 200) {
      throw new Error("Something went wrong on API server!");
    }
    return response.json();
  })
  .then((response) => {
    console.debug(response);
    // …
  })
  .catch((error) => {
    console.error(error);
  });

Spezifikationen

Specification
Fetch
# request-class

Browser-Kompatibilität

Siehe auch