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.

Das Request-Interface der Fetch API repräsentiert eine Ressourcenanforderung.

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

Konstruktor

Request()

Erstellt ein neues Request-Objekt.

Instanzeigenschaften

Request.body Schreibgeschützt

Ein ReadableStream des Körpers.

Request.bodyUsed Schreibgeschützt

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

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 Anmeldedaten mit der Anfrage gesendet werden sollen (z.B. omit, same-origin, include). Der Standard ist same-origin.

Request.destination Schreibgeschützt

Ein String, der den Typ des angeforderten Inhalts beschreibt.

Request.duplex Schreibgeschützt

Der Duplex-Modus der Anfrage, 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 Anfrage.

Request.integrity Schreibgeschützt

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

Request.isHistoryNavigation Schreibgeschützt

Ein Boolean, der angibt, ob die Anfrage eine Verlaufsnavigation ist.

Request.isReloadNavigation Schreibgeschützt

Ein Boolean, der angibt, ob die Anfrage ein benutzerinitiiertes Neuladen ist.

Request.keepalive Schreibgeschützt

Enthält die keepalive-Einstellung der Anfrage (true oder false), die angibt, ob der Browser die zugehörige Anfrage offen 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 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. Dies kann follow, error oder manual sein.

Request.referrer Schreibgeschützt

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

Request.referrerPolicy Schreibgeschützt

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

Request.signal Schreibgeschützt

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

Request.targetAddressSpace Schreibgeschützt

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

Request.url Schreibgeschützt

Enthält die URL der Anfrage.

Instanzmethoden

Request.arrayBuffer()

Gibt ein Promise zurück, das mit einer ArrayBuffer-Repräsentation des Anfragetextes aufgelöst wird.

Request.blob()

Gibt ein Promise zurück, das mit einer Blob-Repräsentation des Anfragetextes aufgelöst wird.

Request.bytes()

Gibt ein Promise zurück, das mit einer Uint8Array-Repräsentation des Anfragetextes aufgelöst wird.

Request.clone()

Erstellt eine Kopie des aktuellen Request-Objekts.

Request.formData()

Gibt ein Promise zurück, das mit einer FormData-Repräsentation des Anfragetextes aufgelöst wird.

Request.json()

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

Request.text()

Gibt ein Promise zurück, das mit einer Textrepräsentation des Anfragetextes aufgelöst wird.

Request.textStream()

Gibt einen ReadableStream zurück, der verwendet werden kann, um die Inhalte des Anfragetextes in UTF-8-Teilen zu lesen.

Hinweis: Die Anfragetextfunktionen können nur einmal ausgeführt werden; nachfolgende Aufrufe werden mit einem TypeError abgelehnt, der anzeigt, dass der Textstream bereits verwendet wurde.

Beispiele

Im folgenden Beispiel 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 an einen fetch()-Aufruf übergeben, zum Beispiel:

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

Im folgenden Beispiel erstellen wir eine neue Anfrage mit dem Request()-Konstruktor mit einigen Anfangsdaten und -inhalten für eine API-Anfrage, die eine Payload im Anfragetext 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 Anfragetext kann nur ein Blob, ein ArrayBuffer, ein TypedArray, ein DataView, ein FormData, ein URLSearchParams, ein ReadableStream oder ein String-Objekt sowie ein Zeichenfolgenliteral sein, daher müssen Sie ein JSON-Objekt in den Payload einfügen, indem Sie dieses Objekt stringifizieren.

Sie könnten diese API-Anfrage dann abrufen, indem Sie das Request-Objekt als Parameter an einen fetch()-Aufruf übergeben, um zum Beispiel die Antwort zu 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