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 Eigenschaft redirected
des Response
Interfaces zeigt an, ob die Antwort das Ergebnis einer von Ihnen durchgeführten Anfrage ist, die umgeleitet wurde.
Hinweis:
Es wird nicht empfohlen, redirected
zu überprüfen, um Umleitungen zu verhindern, da die Umleitung bereits erfolgt ist, wenn eine Antwort empfangen wird, und Sie möglicherweise die Anfrage an ein unerwünschtes Ziel gesendet haben, wobei potenziell sensible Informationen übermittelt werden könnten.
Stattdessen sollten Sie die Filterung durchführen, wenn Sie fetch()
aufrufen.
Siehe das Beispiel Umleitungen verbieten, das dies zeigt.
Wert
Ein boolescher Wert, der true
ist, wenn die Antwort darauf hinweist, dass Ihre Anfrage umgeleitet wurde.
Beispiele
Umleitungen erkennen
Zu überprüfen, ob die Antwort auf eine umgeleitete Anfrage zurückzuführen ist, 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 auftrat.
Es ist jedoch zu beachten, dass dies nicht so sicher ist wie das vollständige Ablehnen von Umleitungen, wenn diese unerwartet sind, wie unten unter Umleitungen verbieten 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 verbieten
Die Überprüfung von redirected
ist eine schlechte Methode, um Umleitungen zu verhindern, da die Umleitung bereits erfolgt ist. Stattdessen sollten Sie den Umleitungsmodus auf "error"
im options
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 # ref-for-dom-response-redirected① |