JavaScript свойство XMLHttpRequest.response
Определение и применение
JavaScript свойство response объекта
XMLHttpRequest
возвращает содержимое тела ответа в виде ArrayBuffer, Blob, Document,
значения, полученного разбором JSON, или строки в зависимости от значения свойства
responseType
запроса. Свойство доступно только для чтения.
Для responseType, равного "" или "text", во время загрузки (состояние
LOADING) свойство возвращает уже полученную часть текста. Для остальных типов значение доступно только
после завершения запроса (состояние DONE); до этого и при ошибке возвращается null.
Типы возможных ответов представлены ниже:
| Значение | Тип данных свойства response |
|---|---|
"" |
Тип данных свойства response — строка, как при значении "text".
Значение по умолчанию.
|
"arraybuffer" |
Тип данных свойства response представляет собой JavaScript объект
ArrayBuffer, содержащий двоичные данные.
|
"blob" |
Тип данных свойства response представляет собой JavaScript объект Blob,
содержащий двоичные данные.
|
"document" |
Тип данных свойства response представляет собой документ HTML или XML, в
зависимости от MIME типа полученных данных.
|
"json" |
Тип данных свойства response представляет собой объект JavaScript, созданный путем анализа
содержимого полученных данных как
JSON. Если ответ не удается разобрать, возвращается null.
|
"text" |
Тип данных свойства response — строка с текстом ответа. |
Поддержка браузерами
Спецификация: xhr.spec.whatwg
Поддерживается во всех основных браузерах с 2015 года.
| Возможность | Компьютеры | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
response | 9 | 12 | 6 | 11.6 | 5.1 | 18 | 6 | 12 | 5 | 1.0 | 3 | 5 |
поддерживаетсяс ограниченияминет поддержкинет данных≤31 — не позднее версии 31
JavaScript синтаксис
const body = xhr.response;
Спецификация
Пример использования
Пример ниже демонстрирует загрузку двоичного объекта с помощью объекта
XMLHttpRequest
методом "GET" и передает этот объект заданной функции обратного вызова:
function getBlob(url, callback) {
let xhr = new XMLHttpRequest(); // инициализируем только что созданный запрос
xhr.open("GET", url); // определяем параметры для запроса
xhr.responseType = "blob"; // указываем тип данных, ожидаемых в ответе
xhr.onload = function() { // добавляем обработчик события
callback(xhr.response); // передаем ответ сервера функции обратного вызова
};
xhr.send(); // отправляем запрос на сервер
}