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.
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.
var isRedirected = Response.redirected;
A Boolean
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; });
Specification | Status | Comment |
---|---|---|
Fetch The definition of 'redirected' in that specification. | Living Standard | Initial definition |
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
Basic support | 60 | (Yes) |
49 (49) | No support | 47 | No support |
Feature | Android | Chrome for Android | Edge | Firefox Mobile (Gecko) | Firefox OS (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|---|
Basic support | 60 | 60 | (Yes) | 49.0 (49) | ? | No support | 47 | ? |
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Response/redirected