Свойство XMLHttpRequest.responseXML
это доступное только для чтения значение, которое содержит Document
содержащий HTML или XML полученный запросом, или null
в случае, если запрос не был успешен, ещё не был отправлен или полученные данные не могут быть корректно обработаны как XML или HTML. Ответ обрабатывается так, как если бы это был "text/xml"
. В случае, если responseType
установлен как "document"
и запрос был осуществлён асинхронно, ответ обрабатывается как "text/html"
. responseXML
содержит null
для любых других типов данных так же, как и для data:
URLs.
Название responseXML
это наследие истории этого свойства, на самом деле оно работает как для HTML, так и для XML.
Если сервер не определяет заголовок Content-Type
как "text/xml"
или "application/xml"
, вы в любом случае можете использовать XMLHttpRequest.overrideMimeType()
чтобы заставить XMLHttpRequest
обрабатывать ответ как XML.
Синтаксис
var data = XMLHttpRequest.responseXML;
Значение
Document
содержащий древовидный результат обработки XML или HTML, полученных с использованием XMLHttpRequest
, или null
, если данные не были получены или содержат другой тип данных.
Исключения
InvalidStateError
responseType
не является"document"
или пустой строкой (каждый из которых указывает, что принятые данные это XML или HTML).
Пример
var xhr = new XMLHttpRequest(); xhr.open('GET', '/server', true); // Если указано, responseType должен быть пустой строкой или "document" xhr.responseType = 'document'; // overrideMimeType() может быть использован, чтобы заставить ответ обрабатываться как XML xhr.overrideMimeType('text/xml'); xhr.onload = function () { if (xhr.readyState === xhr.DONE) { if (xhr.status === 200) { console.log(xhr.response); console.log(xhr.responseXML); } } }; xhr.send(null);
Спецификации
Спецификация | Статус | Комментарий |
---|---|---|
XMLHttpRequest | Живой стандарт | Действующий стандарт WHATWG |
Браузерная совместимость
Feature | Chrome | Firefox (Gecko)[1] | Microsoft Edge | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
Базовая поддержка | (Да) | (Да) | (Да) | (Да) | (Да) | (Да) |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Базовая поддержка | ? | (Да) | (Да) | ? | (Да) | (Да) |
[1] До Firefox 51, обработка ошибок полученных данных добавляла узел <parsererror>
в верх Document
и затем возвращала Document
в каком бы состоянии он ни оказывался. Это было расхождение со спецификацией. Начиная с Firefox 51 сейчас в этом случае возвращается null,
как и указано в спецификации.