Response: blob() 方法
注意:此功能在 Web Workers 中可用。
Response 接口的 blob() 方法会读取一个 Response 流并将其完全读取。它返回一个解析为 Blob 的 Promise。
语法
js
blob()
参数
无。
注意: 如果 Response 的 Response.type 为 "opaque",则生成的 Blob 将具有 Blob.size 为 0,Blob.type 为空字符串 "",这将使其对于 URL.createObjectURL() 等方法无用。
返回值
一个解析为 Blob 的 Promise。
异常
AbortErrorDOMException-
请求已被 中止。
TypeError-
因以下原因之一而抛出:
- 响应体已被 干扰或锁定。
- 解码正文内容时出错(例如,因为
Content-Encoding标头不正确)。
示例
在我们 fetch 请求示例(运行 fetch 请求实时演示)中,我们使用 Request() 构造函数创建了一个新请求,然后使用它来获取一个 JPG。当 fetch 成功时,我们使用 blob() 方法从响应中读取一个 Blob,使用 URL.createObjectURL() 将其放入一个对象 URL,然后将该 URL 设置为 <img> 元素的源以显示图像。
js
const myImage = document.querySelector("img");
const myRequest = new Request("flowers.jpg");
fetch(myRequest)
.then((response) => response.blob())
.then((myBlob) => {
const objectURL = URL.createObjectURL(myBlob);
myImage.src = objectURL;
});
规范
| 规范 |
|---|
| Fetch # ref-for-dom-body-blob① |
浏览器兼容性
加载中…