响应:重定向属性
只读 redirected
属性 Response
接口指示响应是否为重定向请求的结果。
值
如果响应表明您的请求被重定向,则为 true
的布尔值。
示例
检测重定向
检查响应是否来自重定向请求与检查 Response
对象上的此标志一样简单。在下面的代码中,在 fetch 操作期间发生重定向时,文本消息会被插入到元素中。但是,请注意,这不像直接拒绝重定向(如下面 禁止重定向 中所述)那样安全。
The url
属性返回重定向后的最终 URL。
js
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;
});
禁止重定向
由于使用 redirected 手动过滤重定向可能会允许伪造重定向,因此您应该在调用 fetch()
时将重定向模式设置为 "error"
,如下所示
js
fetch("awesome-picture.jpg", { redirect: "error" })
.then((response) => response.blob())
.then((imageBlob) => {
const imgObjectURL = URL.createObjectURL(imageBlob);
document.getElementById("img-element-id").src = imgObjectURL;
});
规范
规范 |
---|
Fetch 标准 # ref-for-dom-response-redirected① |
浏览器兼容性
BCD 表仅在浏览器中加载