javascript基础从小白到高手系列六百七十:Response 对象

顾名思义,Response 对象是获取资源响应的接口。这个接口暴露了响应的相关信息,也暴露了使
用响应体的不同方式。
创建Response 对象
可以通过构造函数初始化Response 对象且不需要参数。此时响应实例的属性均为默认值,因为它
并不代表实际的HTTP 响应:
let r = new Response();
console.log®;
// Response {
// body: (…)
// bodyUsed: false
// headers: Headers {}
// ok: true
// redirected: false
// status: 200
// statusText: “OK”
// type: “default”
// url: “”
// }
Response 构造函数接收一个可选的body 参数。这个body 可以是null,等同于fetch()参数
init 中的body。还可以接收一个可选的init 对象,这个对象可以包含下表所列的键和值。
键 值
headers 必须是Headers 对象实例或包含字符串键/值对的常规对象实例
默认为没有键/值对的Headers 对象
status 表示HTTP 响应状态码的整数
默认为200
statusText 表示HTTP 响应状态的字符串
默认为空字符串
可以像下面这样使用body 和init 来构建Response 对象:
let r = new Response(‘foobar’, {
status: 418,
statusText: ‘I’m a teapot’
});
console.log®;
// Response {
// body: (…)
// bodyUsed: false
// headers: Headers {}
// ok: false
// redirected: false
// status: 418
// statusText: “I’m a teapot”
// type: “default”
// url: “”
// }
大多数情况下,产生Response 对象的主要方式是调用fetch(),它返回一个最后会解决为
Response 对象的期约,这个Response 对象代表实际的HTTP 响应。下面的代码展示了这样得到的
Response 对象:
fetch(‘https://foo.com’)
.then((response) => {
console.log(response);
});
// Response {
// body: (…)
// bodyUsed: false
// headers: Headers {}
// ok: true
// redirected: false
// status: 200
// statusText: “OK”
// type: “basic”
// url: “https://foo.com/”
// }
Response 类还有两个用于生成Response 对象的静态方法:Response.redirect()和Response.
error()。前者接收一个URL 和一个重定向状态码(301、302、303、307 或308),返回重定向的Response
对象:
console.log(Response.redirect(‘https://foo.com’, 301));
// Response {
// body: (…)
// bodyUsed: false
// headers: Headers {}
// ok: false
// redirected: false
// status: 301
// statusText: “”
// type: “default”
// url: “”
// }
提供的状态码必须对应重定向,否则会抛出错误:
Response.redirect(‘https://foo.com’, 200);
// RangeError: Failed to execute ‘redirect’ on ‘Response’: Invalid status code
另一个静态方法Response.error()用于产生表示网络错误的Response 对象(网络错误会导致
fetch()期约被拒绝)。
console.log(Response.error());
// Response {
// body: (…)
// bodyUsed: false
// headers: Headers {}
// ok: false
// redirected: false
// status: 0
// statusText: “”
// type: “error”
// url: “”
// }

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值