Response: blob() method
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017.
Note: This feature is available in Web Workers.
The blob()
method of the Response
interface takes
a Response
stream and reads it to completion. It returns a promise that
resolves with a Blob
.
Syntax
blob()
Parameters
None.
Note:
If the Response
has a
Response.type
of "opaque"
, the resulting Blob
will have a Blob.size
of 0
and a Blob.type
of
empty string ""
, which renders it useless for methods like
URL.createObjectURL()
.
Return value
A promise that resolves with a Blob
.
Exceptions
DOMException
AbortError
-
The request was aborted.
TypeError
-
Thrown for one of the following reasons:
- The response body is disturbed or locked.
- There was an error decoding the body content (for example, because the
Content-Encoding
header is incorrect).
Examples
In our fetch request example (run fetch request live), we
create a new request using the Request()
constructor,
then use it to fetch a JPG. When the fetch is successful, we read a Blob
out of the response using blob()
, put it into an object URL using
URL.createObjectURL()
, and then set that URL as the source of an
<img>
element to display the image.
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;
});
Specifications
Specification |
---|
Fetch Standard # ref-for-dom-body-blob① |
Browser compatibility
BCD tables only load in the browser