files/en-us/web/api/response/blob/index.md
{{APIRef("Fetch API")}}{{AvailableInWorkers}}
The blob() method of the {{domxref("Response")}} interface takes
a {{domxref("Response")}} stream and reads it to completion. It returns a promise that
resolves with a {{domxref("Blob")}}.
blob()
None.
[!NOTE] If the {{domxref("Response")}} has a {{domxref("Response.type")}} of
"opaque", the resulting {{domxref("Blob")}} will have a {{domxref("Blob.size")}} of0and a {{domxref("Blob.type")}} of empty string"", which renders it useless for methods like {{domxref("URL.createObjectURL_static", "URL.createObjectURL()")}}.
A promise that resolves with a {{domxref("Blob")}} whose data is the body's bytes and the media type is the response's Content-Type header's value.
AbortError {{domxref("DOMException")}}
In our fetch request example (run fetch request live), we
create a new request using the {{domxref("Request.Request","Request()")}} constructor,
then use it to fetch a JPG. When the fetch is successful, we read a {{domxref("Blob")}}
out of the response using blob(), put it into an object URL using
{{domxref("URL.createObjectURL_static", "URL.createObjectURL()")}}, and then set that URL as the source of an
{{htmlelement("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}}
{{Compat}}