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: Diese Funktion ist in Web Workers verfügbar.
Die schreibgeschützte redirected
-Eigenschaft des Response
-Interfaces gibt an, ob die Antwort das Ergebnis einer von Ihnen gesendeten Anfrage ist, die umgeleitet wurde.
Hinweis:
Sich auf redirected
zu verlassen, um Umleitungen herauszufiltern, kann dazu führen, dass eine gefälschte Umleitung verhindert, dass Ihr Inhalt wie erwartet funktioniert.
Stattdessen sollten Sie das Filtern durchführen, wenn Sie fetch()
aufrufen.
Siehe das Beispiel Umleitungen nicht erlauben, das zeigt, wie dies gemacht wird.
Wert
Ein boolescher Wert, der true
ist, wenn die Antwort anzeigt, dass Ihre Anfrage umgeleitet wurde.
Beispiele
Erkennen von Umleitungen
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 Textnachricht in ein Element eingefügt, wenn während der Fetch-Operation eine Umleitung auftritt.
Beachten Sie jedoch, dass dies nicht so sicher ist wie das direkte Ablehnen von Umleitungen, wenn diese unerwartet sind, wie unten unter Umleitungen nicht erlauben beschrieben.
Die url
-Eigenschaft gibt die endgültige URL nach Umleitungen 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;
});
Umleitungen nicht erlauben
Da die Verwendung von redirected
, um Umleitungen manuell herauszufiltern, die Fälschung von Umleitungen ermöglichen kann, sollten Sie stattdessen den Redirect-Modus im init
-Parameter beim Aufrufen von fetch()
auf "error"
setzen, 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 # ref-for-dom-response-redirected① |
Browser-Kompatibilität
BCD tables only load in the browser