Fetch API 中的 Body
mixin 代表 代表响应/请求的正文,允许你声明其内容类型是什么以及应该如何处理。
正文由Request
和Response
实现 --- 这为这些对象提供了一个相关联的主体(字节流),一个已使用的标志(最初未设置)和一个MIME类型(最初为空字节序列)。
该处原文:Body
is implemented by both Request
and Response
— this provides these objects with an associated body (a byte stream), a used flag(initially unset), and a MIME type (initially the empty byte sequence).
属性
Body.bodyUsed
只读- 包含一个指示body是否被读取过的
Boolean
值。
方法
Body.arrayBuffer()
- 使用一个buffer数组来读取
Response
流中的数据,并将bodyUsed状态改为已使用。 Body.blob()
- 使用一个
Blob
对象来读取Response
流中的数据,并将bodyUsed状态改为已使用。 Body.formData()
- 使用一个
FormData
对象来读取Response
流中的数据,并将bodyUsed状态改为已使用。 Body.json()
- 使用一个
JSON
对象来读取Response
流中的数据,并将bodyUsed状态改为已使用。 Body.text()
- 使用一个
USVString
(文本) 对象来读取Response
流中的数据,并将bodyUsed状态改为已使用。
范例
在基本 fetch 使用实例 (查看运行效果) 中,我们使用简单的 fetch 请求获取一张图片并将其使用 <img>
标签展示。你可能注意到当我们请求一张图片,需要使用 Body.blob
(Response
实现 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; });
规范
Specification | Status | Comment |
---|---|---|
Fetch Body |
Living Standard |
浏览器兼容情况
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support | 42 [1] |
39 (39) [2] | 未实现 |
29 [3] |
未实现 |
Feature | Android | Firefox Mobile (Gecko) | Firefox OS (Gecko) | IE Phone | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|
Basic support | 未实现 | 未实现 | 未实现 | 未实现 | 未实现 | 未实现 | 未实现 |
[1] Behind a preference in version 41.
[2] Behind a preference starting with version 34.
[3] Behind a preference in version 28.
也可以看看