Body - 表示响应/请求的主体
Body
mixin 是 Fetch API 中的接口,表示响应/请求的主体,允许你声明它的内容类型以及如何被处理。
Body
被 Request
和 Response
实现。它为这些对象提供了相关的 body(一个数据流(stream)),一个使用过的标志(最初为未设置),和一个MIME 类型(最初是空字节序列)。
属性
Body.body
只读
一个简单的 getter 用于暴露正文内容的 ReadableStream
。
Body.bodyUsed
只读
一个 Boolean
,它表示是否已经读取了正文。
方法
Body.arrayBuffer()
接收 Response
流并将其读取完成。它返回一个 promise,解析为 ArrayBuffer
。
Body.blob()
接收 Response
流并将其读取完成。它返回一个 promose,解析为 Blob
。
Body.formData()
接收 Response
流并将其读取完成。它返回一个 promise,解析为 FormData
。
Body.json()
接收 Response
流并将其读取完成。它返回一个 promise,解析正文文本的结果为 JSON
。
Body.text()
接收 Response
流并将其读取完成。它返回一个以 promise,解析为 USVString
(文本)。返回值总是使用 UTF-8 解码。
实例
下面的示例使用简单的抓取(fetch)调用来抓取图像并将其显示在 <img>
标签中。你会注意到,因为我们需要显示图像,我们需要通过 Body.blob()
(Response
继承了 Body
) 为响应内容提供正确的 MIME 类型。
<img>
标签中
抓取图像并将其显示在 <img class="my-image" src="https://wikipedia.org/static/images/project-logos/frwiki-1.5x.png">
<script>
var myImage = document.querySelector('.my-image');
fetch('https://upload.wikimedia.org/wikipedia/commons/7/77/Delete_key1.jpg')
.then(res => res.blob())
.then(res => {
var objectURL = URL.createObjectURL(res);
myImage.src = objectURL;
});
</script>
规范
规范 | 状态 | 备注 |
---|---|---|
Fetch Body 的定义 |
现行的标准 | - |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 |
42 41 |
支持 |
39 34 |
不支持 | 29 | 不支持 |
body |
52 | 支持 | 不支持 | 不支持 | 39 | 未知 |
bodyUsed |
42 41 |
支持 |
39 34 |
不支持 |
29 28 |
不支持 |
arrayBuffer |
42 41 |
支持 |
39 34 |
不支持 |
29 28 |
不支持 |
blob |
42 41 |
支持 |
39 34 |
不支持 |
29 28 |
不支持 |
formData |
60 | 未知 |
39 34 |
不支持 | 47 | 不支持 |
json |
42 41 |
支持 |
39 34 |
不支持 |
29 28 |
不支持 |
text |
42 41 |
支持 |
39 34 |
不支持 |
29 28 |
不支持 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 42 | 42 | 未知 | 未知 | 未知 | 支持 | 不支持 |
body |
52 | 52 | 未知 | 不支持 | 未知 | 39 | 未知 |
bodyUsed |
不支持 | 不支持 | 支持 | 不支持 | 未知 | 不支持 | 不支持 |
arrayBuffer |
不支持 | 不支持 | 支持 | 不支持 | 未知 | 不支持 | 不支持 |
blob |
不支持 | 不支持 | 支持 | 不支持 | 未知 | 不支持 | 不支持 |
formData |
60 | 60 | 未知 | 不支持 | 未知 | 47 | 不支持 |
json |
不支持 | 不支持 | 支持 | 不支持 | 未知 | 不支持 | 不支持 |
text |
不支持 | 不支持 | 支持 | 不支持 | 未知 | 不支持 | 不支持 |