--- title: XMLHttpRequest.responseXML slug: Web/API/XMLHttpRequest/responseXML tags: - AJAX - API - XMLHttpRequest - Отправка - Свойство - Справка - Только для чтения - загрузка translation_of: Web/API/XMLHttpRequest/responseXML ---

{{APIRef('XMLHttpRequest')}}

Свойство XMLHttpRequest.responseXML это доступное только для чтения значение, которое содержит {{domxref("Document")}} содержащий HTML или XML полученный запросом, или null в случае, если запрос не был успешен, ещё не был отправлен или полученные данные не могут быть корректно обработаны как XML или HTML. Ответ обрабатывается так, как если бы это был "text/xml". В случае, если {{domxref("XMLHttpRequest.responseType", "responseType")}} установлен как "document" и запрос был осуществлён асинхронно, ответ обрабатывается как "text/html". responseXML содержит null для любых других типов данных так же, как и для data: URLs.

Название responseXML это наследие истории этого свойства, на самом деле оно работает как для HTML, так и для XML.

Если сервер не определяет заголовок {{HTTPHeader("Content-Type")}} как "text/xml" или "application/xml", вы в любом случае можете использовать {{domxref("XMLHttpRequest.overrideMimeType()")}} чтобы заставить XMLHttpRequest обрабатывать ответ как XML.

Синтаксис

var data = XMLHttpRequest.responseXML;

Значение

{{domxref("Document")}} содержащий древовидный результат обработки XML или HTML, полученных с использованием {{domxref("XMLHttpRequest")}}, или null, если данные не были получены или содержат другой тип данных.

Исключения

InvalidStateError
{{domxref("XMLHttpRequest.responseType", "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);

Спецификации

Спецификация Статус Комментарий
{{SpecName('XMLHttpRequest', '#the-responsexml-attribute')}} {{Spec2('XMLHttpRequest')}} Действующий стандарт WHATWG

Браузерная совместимость

{{CompatibilityTable}}
Feature Chrome Firefox (Gecko)[1] Microsoft Edge Internet Explorer Opera Safari (WebKit)
Базовая поддержка {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Базовая поддержка {{CompatUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}

[1]  До Firefox 51, обработка ошибок полученных данных добавляла узел <parsererror> в верх {{domxref("Document")}} и затем возвращала Document в каком бы состоянии он ни оказывался. Это было расхождение со спецификацией. Начиная с Firefox 51 сейчас в этом случае возвращается null, как и указано в спецификации.

Смотрите также