aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/api/xmlhttprequest/readystate/index.html
blob: 5ddd54e9815bc0f0bddbc80b637d527cba8bf91f (plain)
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
---
title: XMLHttpRequest.readyState
slug: Web/API/XMLHttpRequest/readyState
tags:
  - AJAX
  - XMLHttpRequest
  - Свойство
  - Ссылка
translation_of: Web/API/XMLHttpRequest/readyState
---
<p>{{APIRef('XMLHttpRequest')}}</p>

<p><strong>Свойство XMLHttpRequest.readyState</strong> возвращает текущее состояние объекта XMLHttpRequest. Объект <abbr title="XMLHttpRequest">XHR</abbr> может иметь следующие состояния:</p>

<table class="standard-table">
 <tbody>
  <tr>
   <td class="header">Значение</td>
   <td class="header">Состояние</td>
   <td class="header">Описание</td>
  </tr>
  <tr>
   <td><code>0</code></td>
   <td><code>UNSENT</code></td>
   <td>Объект был создан. Метод <code>open()</code> ещё не вызывался.</td>
  </tr>
  <tr>
   <td><code>1</code></td>
   <td><code>OPENED</code></td>
   <td><code>Метод open()</code> был вызван.</td>
  </tr>
  <tr>
   <td><code>2</code></td>
   <td><code>HEADERS_RECEIVED</code></td>
   <td><code>Метод send()</code> был вызван, доступны заголовки (headers) и статус.</td>
  </tr>
  <tr>
   <td><code>3</code></td>
   <td><code>LOADING</code></td>
   <td>Загрузка; <code>responseText</code> содержит частичные данные.</td>
  </tr>
  <tr>
   <td><code>4</code></td>
   <td><code>DONE</code></td>
   <td>Операция полностью завершена.</td>
  </tr>
 </tbody>
</table>

<dl>
 <dt>UNSENT</dt>
 <dd>Объект XMLHttpRequest был создан, но метод <code>open()</code> ещё не вызывался.</dd>
 <dt>OPENED</dt>
 <dd>Был вызван метод open(). На этом этапе методом <a href="/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader">setRequestHeader()</a> могут быть установлены заголовки запроса (request headers), после чего для начала выполнения запроса может быть вызван метод <a href="/en-US/docs/Web/API/XMLHttpRequest/send">send()</a> .</dd>
 <dt>HEADERS_RECEIVED</dt>
 <dd>Был вызван метод send() и получены заголовки ответа (response headers) .</dd>
 <dt>LOADING</dt>
 <dd>Получена часть ответа. Если <code><a href="/en-US/docs/Web/API/XMLHttpRequest/responseType">responseType</a></code>  - это пустая строка или имеет значение "text", <code><a href="/en-US/docs/Web/API/XMLHttpRequest/responseText">responseText</a></code> будет содержать загруженную порцию текста ответа.</dd>
 <dt>DONE</dt>
 <dd>Операция доставки данных завершена. Это может означать как то, что передача данных полностью завершена успешно, так и то, что произошла ошибка.</dd>
</dl>

<div class="note">
<p>Названия состояний отличаются в версиях Internet Explorer ранее 11. Вместо <code>UNSENT</code>, <code>OPENED</code>,<code> HEADERS_RECEIVED</code>,<code> LOADING</code> и <code>DONE, используются названия READYSTATE_UNINITIALIZED</code> (0), <code>READYSTATE_LOADING</code> (1), <code>READYSTATE_LOADED</code> (2), <code>READYSTATE_INTERACTIVE</code> (3) и <code>READYSTATE_COMPLETE</code> (4).</p>
</div>

<h2 id="Пример">Пример</h2>

<pre class="brush: js">var xhr = new XMLHttpRequest();
console.log('UNSENT', xhr.readyState); // readyState будет равно 0

xhr.open('GET', '/api', true);
console.log('OPENED', xhr.readyState); // readyState будет равно 1

xhr.onprogress = function () {
    console.log('LOADING', xhr.readyState); // readyState будет равно 3
};

xhr.onload = function () {
    console.log('DONE', xhr.readyState); // readyState будет равно 4
};

xhr.send(null);
</pre>

<h2 id="Спецификации">Спецификации</h2>

{{Specifications}}

<h2 id="Совместимость_браузеров">Совместимость браузеров</h2>

<p>{{Compat("api.XMLHttpRequest.readyState")}}</p>