The read-only redirected
property of the Response
interface indicates whether or not the response is the result of a request you made which was redirected.
Note: Relying on redirected to filter out redirects makes it easy for a forged redirect to prevent your content from working as expected. Instead, you should actually instead do the filtering when you call fetch()
. See the example Disallowing redirects, which shows this being done.
A boolean value which is true
if the response indicates that your request was redirected.
Checking to see if the response comes from a redirected request is as simple as checking this flag on the Response
object. In the code below, a textual message is inserted into an element when a redirect occurred during the fetch operation. Note, however, that this isn't as safe as outright rejecting redirects if they're unexpected, as described under Disallowing redirects below.
fetch("awesome-picture.jpg").then(function(response) {
let elem = document.getElementById("warning-message-box");
if (response.redirected) {
elem.innerHTML = "Unexpected redirect";
} else {
elem.innerHTML = "";
}
return response.blob();
}).then(function(imageBlob) {
let imgObjectURL = URL.createObjectURL(imageBlob);
document.getElementById("img-element-id").src = imgObjectURL;
});
Because using redirected to manually filter out redirects can allow forgery of redirects, you should instead set the redirect mode to "error"
in the init
parameter when calling fetch()
, like this:
fetch("awesome-picture.jpg", { redirect: "error" }).then(function(response) {
return response.blob();
}).then(function(imageBlob) {
let imgObjectURL = URL.createObjectURL(imageBlob);
document.getElementById("img-element-id").src = imgObjectURL;
});