Ответ: метод blob()
Базовая Широко доступная
Эта функция хорошо отработана и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с марта 2017 года.
Примечание: Эта функция доступна в Web Workers.
Метод blob() интерфейса Response принимает поток Response и считывает его до конца. Он возвращает промис, который разрешается значением Blob.
Синтаксис
blob()
Параметры
Нет.
Примечание: Если у Response есть тип Response.type "opaque", полученный Blob будет иметь размер Blob.size 0 и тип Blob.type пустую строку "", что делает его бесполезным для методов, таких как URL.createObjectURL().
Возвращаемое значение
Промис, который разрешается значением Blob.
Исключения
-
DOMExceptionAbortError -
Запрос был отменён.
TypeError-
Выбрасывается по одной из следующих причин:
- Тело ответа нарушено или заблокировано.
- Произошла ошибка при декодировании содержимого тела (например, из-за неправильного заголовка
Content-Encoding).
Примеры
В нашем примере запроса fetch (запустите запрос fetch в режиме реального времени), мы создаём новый запрос с помощью конструктора Request(), затем используем его для получения JPG-файла. Когда запрос fetch завершается успешно, мы считываем Blob из ответа, используя blob(), помещаем его в URL объекта с помощью URL.createObjectURL(), а затем устанавливаем этот URL в качестве источника элемента <img> для отображения изображения.
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① |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
blob |
42 | 14 | 39 | 29 | 10.1 | 42 | 39 | 29 | 10.3 | 4.0 | 42 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Response/blob