这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。
Fetch API 的Response接口呈现了对一次请求的响应数据
你可以使用Response.Response()
构造函数来创建一个Response对象,但一般更可能遇到的情况是,其他的API操作返回了一个Response对象,例如一个service worker 的Fetchevent.respondWith
,或者一个简单的 GlobalFetch.fetch()
构造函数
Response.Response()
- 创建一个新的Response对象.
属性
Response.type
只读- 包含Response的类型 (例如,
basic
,cors
). Response.url
只读- 包含Response的URL.
Response.useFinalURL
- 包含了一个布尔值来标示这是否是该Response的最终URL.
Response.status
只读- 包含Response的状态码 (例如,
200 成功
). Response.ok
只读- 包含了一个布尔值来标示该Response成功(状态码200-299) 还是失败.
Response.redirected
只读- 表示该Response是否来自一个重定向,如果是的话,它的URL列表将会有多个
Response.statusText
只读- 包含了与该Response状态码一致的状态信息 (例如, OK对应
200
). Response.headers
只读- 包含此Response所关联的
Headers
对象.
Response
实现了 Body
, 所以以下属性同样可用:
Body.bodyUsed
只读- 包含了一个布尔值来标示该Response是否读取过
Body
.
方法
Response.clone()
- 创建一个Response对象的克隆
Response.error()
- 返回一个绑定了网络错误的新的Response对象
Response.redirect()
- 用另一个URL创建一个新的 response.
Response
实现了 Body
, 所以以下方法同样可用:
Body.arrayBuffer()
- 读取
Response
对象并且将它设置为已读(因为Responses对象被设置为了 stream 的方式,所以它们只能被读取一次) ,并返回一个被解析为ArrayBuffer
格式的promise对象 Body.blob()
- 读取
Response
对象并且将它设置为已读(因为Responses对象被设置为了 stream 的方式,所以它们只能被读取一次) ,并返回一个被解析为Blob
格式的promise对象 Body.formData()
- 读取
Response
对象并且将它设置为已读(因为Responses对象被设置为了 stream 的方式,所以它们只能被读取一次) ,并返回一个被解析为FormData
格式的promise对象 Body.json()
- 读取
Response
对象并且将它设置为已读(因为Responses对象被设置为了 stream 的方式,所以它们只能被读取一次) ,并返回一个被解析为JSON
格式的promise对象 Body.text()
- 读取
Response
对象并且将它设置为已读(因为Responses对象被设置为了 stream 的方式,所以它们只能被读取一次) ,并返回一个被解析为USVString
格式的promise对象 - 解析完整的
Response
,并返回一个USVString
对象的promise
示例
在我们的基础实例 (点击运行) 中 , 我们使用了一个简单的函数调用 , 调用了 fetch() 函数来获取一张图片并将其显示在 HTML 的 IMG 标签中 , fetch() 函数返回了一个promise,它使用与资源获取操作相关联的Response对象进行解析. 你会注意到,由于我们正在请求一张图片,我们需要运行Body.blob
(Response
implements body),以使响应成为正确的MIME类型。
var myImage = document.querySelector('.my-image'); fetch('flowers.jpg').then(function(response) { return response.blob(); }).then(function(response) { var objectURL = URL.createObjectURL(response); myImage.src = objectURL; });
你也可以使用 Response.Response()
这样的构造方法来创建自定义的响应体对象
var myResponse = new Response();
规范
Specification | Status | Comment |
---|---|---|
Fetch Response |
Living Standard | Initial definition |
浏览器兼容性
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support | 42 41[1] |
39 (39) 34[1] |
未实现 |
29 |
未实现 |
Feature | Android | Firefox Mobile (Gecko) | Firefox OS (Gecko) | IE Phone | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|
Basic support | 未实现 | 未实现 | 未实现 | 未实现 | 未实现 | 未实现 | 未实现 |
[1] This feature is implemented behind a preference.