此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

Response:blob() 方法

基线
广泛可用

自 2017年3月 起,此特性已在主流浏览器中得到支持,可在大多数设备和浏览器版本中正常使用。

备注: 此特性在 Web Worker 中可用。

Response 接口的 blob() 方法将 Response 流读取至结束。它返回一个会兑现 Blob 的 promise。

语法

js
blob()

参数

无。

备注:若 Response 的 Response.type 为 "opaque",则得到的 Blob 的 Blob.size 为 0,Blob.type 为空字符串 "",这会使其对 URL.createObjectURL() 等方法毫无用处。

返回值

一个 promise,会兑现一个 Blob,其数据为响应体的字节,媒体类型为响应 Content-Type 标头的值。

异常

AbortError DOMException

请求已被中止。

TypeError

由于以下原因之一而抛出:

示例

在我们的 fetch 请求示例(在线运行 fetch 请求)中,我们使用 Request() 构造函数创建新请求,然后用它来获取一张 JPG。获取成功后,我们使用 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①

浏览器兼容性

参见