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.
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:
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