Response: redirected-Eigenschaft

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.

Hinweis: Dieses Feature ist verfügbar in Web Workers.

Die redirected schreibgeschützte Eigenschaft des Response-Interfaces gibt an, ob die Antwort das Ergebnis einer von Ihnen angeforderten Weiterleitung ist.

Hinweis: Sich auf redirected zu verlassen, um Weiterleitungen herauszufiltern, macht es einfach, dass eine gefälschte Weiterleitung verhindert, dass Ihr Inhalt wie erwartet funktioniert. Stattdessen sollten Sie das Filtern vornehmen, wenn Sie fetch() aufrufen. Siehe das Beispiel Verhindern von Weiterleitungen, das dies zeigt.

Wert

Ein boolescher Wert, der true ist, wenn die Antwort anzeigt, dass Ihre Anfrage umgeleitet wurde.

Beispiele

Erkennen von Weiterleitungen

Zu überprüfen, ob die Antwort von einer umgeleiteten Anfrage stammt, ist so einfach wie das Überprüfen dieses Flags auf dem Response-Objekt. Im folgenden Code wird eine textuelle Nachricht in ein Element eingefügt, wenn eine Weiterleitung während der Fetch-Operation erfolgt ist. Beachten Sie jedoch, dass dies nicht so sicher ist, wie das konsequente Ablehnen von Weiterleitungen, wenn sie unerwartet sind, wie im Abschnitt Verhindern von Weiterleitungen unten beschrieben.

Die url-Eigenschaft gibt die endgültige URL nach den Weiterleitungen zurück.

js
fetch("awesome-picture.jpg")
  .then((response) => {
    const elem = document.getElementById("warning-message-box");
    elem.textContent = response.redirected ? "Unexpected redirect" : "";
    // final url obtained after redirects
    console.log(response.url);
    return response.blob();
  })
  .then((imageBlob) => {
    const imgObjectURL = URL.createObjectURL(imageBlob);
    document.getElementById("img-element-id").src = imgObjectURL;
  });

Verhindern von Weiterleitungen

Da die Verwendung von redirected, um Weiterleitungen manuell herauszufiltern, die Fälschung von Weiterleitungen ermöglichen kann, sollten Sie stattdessen den Weiterleitungsmodus auf "error" im init-Parameter setzen, wenn Sie fetch() aufrufen, wie folgt:

js
fetch("awesome-picture.jpg", { redirect: "error" })
  .then((response) => response.blob())
  .then((imageBlob) => {
    const imgObjectURL = URL.createObjectURL(imageBlob);
    document.getElementById("img-element-id").src = imgObjectURL;
  });

Spezifikationen

Specification
Fetch Standard
# ref-for-dom-response-redirected①

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch