codecamp

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 不支持
Response属性:ok
Response属性:status
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Fetch API官方文档指南

Fetch API方法

WindowOrWorkerGlobalScope执行者:window

window属性

WindowOrWorkerGlobalScope执行者:WorkerGlobalScope

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }