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.
也可以看看