Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Request

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.

* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.

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, jedoch ist es wahrscheinlicher, dass Sie ein Request-Objekt als Ergebnis einer anderen API-Operation erhalten, wie etwa einer Service-Worker-FetchEvent.request.

Konstruktor

Request()

Erstellt ein neues Request-Objekt.

Instanz-Eigenschaften

Request.body Schreibgeschützt

Ein ReadableStream der Körperinhalte.

Request.bodyUsed Schreibgeschützt

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

Request.cache Schreibgeschützt

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

Request.credentials Schreibgeschützt

Enthält einen Wert, der steuert, ob Anmeldeinformationen in die Anforderung aufgenommen werden sollen (z.B. omit, same-origin, include). Der Standardwert ist same-origin.

Request.destination Schreibgeschützt

Ein String, der die Art des angeforderten Inhalts beschreibt.

Request.duplex Schreibgeschützt

Der Duplex-Modus der Anforderung, der bestimmt, ob der Browser die gesamte Anfrage senden muss, bevor die Antwort verarbeitet wird.

Request.headers Schreibgeschützt

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

Request.integrity Schreibgeschützt

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

Request.isHistoryNavigation Schreibgeschützt

Ein boolescher Wert, der anzeigt, ob die Anforderung eine Verlauf-Navigation ist.

Request.isReloadNavigation Schreibgeschützt

Ein boolescher Wert, der anzeigt, ob die Anforderung ein benutzerinitiiertes Neuladen ist.

Request.keepalive Schreibgeschützt

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

Request.method Schreibgeschützt

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

Request.mode Schreibgeschützt

Enthält den Modus der Anforderung (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 Referrer der Anforderung (z.B. client).

Request.referrerPolicy Schreibgeschützt

Enthält die Referrer-Richtlinie der Anforderung (z.B. no-referrer).

Request.signal Schreibgeschützt

Gibt das mit der Anforderung verbundene AbortSignal zurück.

Request.targetAddressSpace Schreibgeschützt

Gibt den Zieladressraum der Anforderung zurück, der angibt, ob es sich um eine Loopback-, lokale oder öffentliche Anfrage handelt.

Request.url Schreibgeschützt

Enthält die URL der Anforderung.

Instanz-Methoden

Request.arrayBuffer()

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

Request.blob()

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

Request.bytes()

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

Request.clone()

Erstellt eine Kopie des aktuellen Request-Objekts.

Request.formData()

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

Request.json()

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

Request.text()

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

Hinweis: Die Funktionen für den Anforderungskörper können nur einmal ausgeführt werden; nachfolgende Aufrufe werden mit TypeError abgelehnt, der zeigt, dass der Körperstream bereits verwendet wurde.

Beispiele

Im folgenden Ausschnitt erstellen wir eine neue Anfrage mit dem Request()-Konstruktor (für eine Bilddatei im gleichen 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 abrufen, indem Sie das Request-Objekt als Parameter in einen fetch()-Aufruf übergeben, zum Beispiel:

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

Im folgenden Ausschnitt erstellen wir eine neue Anfrage mit dem Request()-Konstruktor mit einigen Anfangsdaten und Körperinhalt für eine API-Anfrage, die eine Nutzlast im Körper 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 einfacher String-Literal sein, sodass Sie zum Hinzufügen eines JSON-Objekts zur Nutzlast dieses Objekt als String darstellen müssen.

Sie könnten diese API-Anfrage dann abrufen, indem Sie das Request-Objekt als Parameter in einen fetch()-Aufruf übergeben und die Antwort erhalten:

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

Spezifikation
Fetch
# request-class

Browser-Kompatibilität

Siehe auch