1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
|
---
title: XMLHttpRequest.responseXML
slug: Web/API/XMLHttpRequest/responseXML
tags:
- AJAX
- API
- XMLHttpRequest
- Отправка
- Свойство
- Справка
- Только для чтения
- загрузка
translation_of: Web/API/XMLHttpRequest/responseXML
---
<p>{{APIRef('XMLHttpRequest')}}</p>
<p><code><font face="Open Sans, Arial, sans-serif">Свойство </font><strong>XMLHttpRequest.responseXML</strong></code> это доступное только для чтения значение, которое содержит {{domxref("Document")}} содержащий HTML или XML полученный запросом, или <code>null</code> в случае, если запрос не был успешен, ещё не был отправлен или полученные данные не могут быть корректно обработаны как XML или HTML. Ответ обрабатывается так, как если бы это был <code>"text/xml"</code>. В случае, если {{domxref("XMLHttpRequest.responseType", "responseType")}} установлен как <code>"document"</code> и запрос был осуществлён асинхронно, ответ обрабатывается как <code>"text/html"</code>. <code>responseXML</code> содержит <code>null</code> для любых других типов данных так же, как и для <a href="/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs"><code>data:</code> URLs</a>.</p>
<div class="note">
<p>Название <code>responseXML</code> это наследие истории этого свойства, на самом деле оно работает как для HTML, так и для XML.</p>
</div>
<p>Если сервер не определяет заголовок {{HTTPHeader("Content-Type")}} как <code>"text/xml"</code> или <code>"application/xml"</code>, вы в любом случае можете использовать {{domxref("XMLHttpRequest.overrideMimeType()")}} чтобы заставить <code>XMLHttpRequest</code> обрабатывать ответ как XML.</p>
<h2 id="Синтаксис">Синтаксис</h2>
<pre class="syntaxbox">var <em>data</em> = <em>XMLHttpRequest</em>.responseXML;
</pre>
<h3 id="Значение">Значение</h3>
<p>{{domxref("Document")}} содержащий древовидный результат обработки XML или HTML, полученных с использованием {{domxref("XMLHttpRequest")}}, или <code>null</code>, если данные не были получены или содержат другой тип данных.</p>
<h3 id="Исключения">Исключения</h3>
<dl>
<dt><code>InvalidStateError</code></dt>
<dd>{{domxref("XMLHttpRequest.responseType", "responseType")}} не является <code>"document"</code> или пустой строкой (каждый из которых указывает, что принятые данные это XML или HTML).</dd>
</dl>
<h2 id="Пример">Пример</h2>
<pre class="brush: js">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);</pre>
<h2 id="Спецификации">Спецификации</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Спецификация</th>
<th scope="col">Статус</th>
<th scope="col">Комментарий</th>
</tr>
<tr>
<td>{{SpecName('XMLHttpRequest', '#the-responsexml-attribute')}}</td>
<td>{{Spec2('XMLHttpRequest')}}</td>
<td>Действующий стандарт WHATWG</td>
</tr>
</tbody>
</table>
<h2 id="Браузерная_совместимость">Браузерная совместимость</h2>
<div>{{CompatibilityTable}}</div>
<div id="compat-desktop">
<table class="compat-table">
<tbody>
<tr>
<th>Feature</th>
<th>Chrome</th>
<th>Firefox (Gecko)<sup>[1]</sup></th>
<th>Microsoft Edge</th>
<th>Internet Explorer</th>
<th>Opera</th>
<th>Safari (WebKit)</th>
</tr>
<tr>
<td>Базовая поддержка</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
</tr>
</tbody>
</table>
</div>
<div id="compat-mobile">
<table class="compat-table">
<tbody>
<tr>
<th>Feature</th>
<th>Android</th>
<th>Chrome for Android</th>
<th>Firefox Mobile (Gecko)</th>
<th>IE Mobile</th>
<th>Opera Mobile</th>
<th>Safari Mobile</th>
</tr>
<tr>
<td>Базовая поддержка</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
</tr>
</tbody>
</table>
</div>
<p>[1] До Firefox 51, обработка ошибок полученных данных добавляла узел <code><parsererror></code> в верх {{domxref("Document")}} и затем возвращала <code>Document</code> в каком бы состоянии он ни оказывался. Это было расхождение со спецификацией. Начиная с Firefox 51 сейчас в этом случае возвращается <code>null,</code> как и указано в спецификации.</p>
<h2 id="Смотрите_также">Смотрите также</h2>
<ul>
<li>{{domxref("XMLHttpRequest")}}</li>
<li>{{domxref("XMLHttpRequest.response")}}</li>
<li>{{domxref("XMLHttpRequest.responseType")}}</li>
</ul>
|