Response属性:redirected
redirected 只读属性
Response 接口的 redirected 只读属性指示响应是否是您重定向的请求的结果。
依靠重定向来过滤掉重定向,可以让伪造的重定向轻松防止您的内容按照预期的进行工作。相反,您实际上应该在调用 fetch () 时进行筛选。
redirected 只读属性语法
var isRedirected = Response.redirected;
redirected 只读属性值
redirected 只读属性为一个Boolean,如果响应表明您的请求已被重定向,则为 true。
redirected 只读示例
检测重定向
检查来自重定向请求的响应是否与在 Response 对象上检查该标志一样简单。在下面的代码中,当在 fetch 操作期间发生重定向时,会将文本消息插入到元素中。但是,请注意,这不像直接拒绝重定向那样安全,如果它们是意外的,请按照下面不允许的重定向来描述。
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;
});
不允许重定向
因为使用重定向来手动过滤重定向可以允许伪造重定向,所以在调用 fetch() 时,在参数 init 中应该将重定向模式设置为"error" ,如下所示:
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;
});
规范
规范 | 状态 | 注释 |
---|---|---|
Fetch
在该规范中'redirected'的定义。
|
Living Standard
|
初始定义 |
浏览器兼容性
电脑端 | 移动端 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome
|
Edge
|
Firefox
|
Internet Explorer
|
Opera
|
Safari
|
Android webview
|
Chrome for Android
|
Edge Mobile | Firefox for Android
|
Opera for Android
|
iOS Safari | |
基本支持 | 支持:60 | 支持 | 支持:49 | 不支持 | 支持:47 | 不支持 | 支持:60 | 支持:60 | 支持 | 支持:49 | 支持:47 | 不支持 |