---
title: XMLHttpRequest.readyState
slug: Web/API/XMLHttpRequest/readyState
tags:
  - AJAX
  - Property
  - Reference
  - XML
  - XMLHttpRequest
translation_of: Web/API/XMLHttpRequest/readyState
---
<p>{{APIRef('XMLHttpRequest')}}</p>

<p>A propriedade <strong>XMLHttpRequest.readyState</strong> retorna o estado de um XMLHttpRequest. Uma requisição <abbr title="XMLHttpRequest">XHR</abbr> que existe em um dos seguintes estados:</p>

<table class="standard-table">
 <tbody>
  <tr>
   <td class="header">Valor</td>
   <td class="header">Estado</td>
   <td class="header">Descrição</td>
  </tr>
  <tr>
   <td><code>0</code></td>
   <td><code>UNSENT</code></td>
   <td>Um cliente foi criado. Mas o método <code>open()</code>  não foi chamado ainda.</td>
  </tr>
  <tr>
   <td><code>1</code></td>
   <td><code>OPENED</code></td>
   <td><code>O método open() foi chamado</code>.</td>
  </tr>
  <tr>
   <td><code>2</code></td>
   <td><code>HEADERS_RECEIVED</code></td>
   <td><code>o método send()</code> foi chamado e os cabeçalhos e status estão disponíveis .</td>
  </tr>
  <tr>
   <td><code>3</code></td>
   <td><code>LOADING</code></td>
   <td>Baixando e <code>responseText</code> contem os dados parciais.</td>
  </tr>
  <tr>
   <td><code>4</code></td>
   <td><code>DONE</code></td>
   <td>Operação concluída.</td>
  </tr>
 </tbody>
</table>

<dl>
 <dt>UNSENT</dt>
 <dd>O XMLHttpRequest foi criado. Mas o método open() não foi chamado ainda.</dd>
 <dt>OPENED</dt>
 <dd>O método open() foi invocado. Durante esse estado, os headers da requisição podem ser inseridos usando o método <a href="/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader">setRequestHeader()</a>  e o método <a href="/en-US/docs/Web/API/XMLHttpRequest/send">send()</a> pode ser chamado, iniciando a busca.</dd>
 <dt>HEADERS_RECEIVED</dt>
 <dd>O método send() foi chamado e os cabeçalhos de respostas foram recebidos.</dd>
 <dt>LOADING</dt>
 <dd>A resposta da requisição está sendo recebida. se o <code><a href="/en-US/docs/Web/API/XMLHttpRequest/responseType">responseType</a></code> for "text" ou  um texto em branco, o <code><a href="/en-US/docs/Web/API/XMLHttpRequest/responseText">responseText</a></code> terá o texto parcial da resposta conforme seu carregamento.</dd>
 <dt>DONE</dt>
 <dd>A Operação de busca está completa. Isso pode significar que a trasferência foi concluída com êxito ou que falhou.</dd>
</dl>

<div class="note">
<p>Os nomes de estado são diferentes no Internet Explorer. Ao invés de <code>UNSENT</code>, <code>OPENED</code>,<code> HEADERS_RECEIVED</code>,<code> LOADING <font face="Open Sans, Arial, sans-serif">e </font></code><code>DONE, os nomes usados são: READYSTATE_UNINITIALIZED</code> (0), <code>READYSTATE_LOADING</code> (1), <code>READYSTATE_LOADED</code> (2), <code>READYSTATE_INTERACTIVE</code> (3) e <code>READYSTATE_COMPLETE</code> (4).</p>
</div>

<h2 id="Exemplo">Exemplo</h2>

<pre class="brush: js">var xhr = new XMLHttpRequest();
console.log('UNSENT', xhr.readyState); // readyState will be 0

xhr.open('GET', '/api', true);
console.log('OPENED', xhr.readyState); // readyState will be 1

xhr.onprogress = function () {
    console.log('LOADING', xhr.readyState); // readyState will be 3
};

xhr.onload = function () {
    console.log('DONE', xhr.readyState); // readyState will be 4
};

xhr.send(null);
</pre>

<h2 id="Especificações">Especificações</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Especificação</th>
   <th scope="col">Status</th>
   <th scope="col">Commentários</th>
  </tr>
  <tr>
   <td>{{SpecName('XMLHttpRequest', '#states')}}</td>
   <td>{{Spec2('XMLHttpRequest')}}</td>
   <td>WHATWG living standard</td>
  </tr>
 </tbody>
</table>

<h2 id="Browser_compatibility">Compatibilidade com navegadores</h2>

<div>{{CompatibilityTable}}</div>

<div id="compat-desktop">
<table class="compat-table">
 <tbody>
  <tr>
   <th>Suporte</th>
   <th>Chrome</th>
   <th>Firefox (Gecko)</th>
   <th>Internet Explorer</th>
   <th>Opera</th>
   <th>Safari (WebKit)</th>
  </tr>
  <tr>
   <td>Suporte básico</td>
   <td>{{CompatChrome(1)}}</td>
   <td>{{CompatGeckoDesktop("1.0")}}<sup>[1]</sup></td>
   <td>{{CompatIe(7)}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatSafari("1.2")}}</td>
  </tr>
 </tbody>
</table>
</div>

<div id="compat-mobile">
<table class="compat-table">
 <tbody>
  <tr>
   <th>Suporte</th>
   <th>Android</th>
   <th>Chrome para Android</th>
   <th>Firefox Mobile (Gecko)</th>
   <th>IE Mobile</th>
   <th>Opera Mobile</th>
   <th>Safari Mobile</th>
  </tr>
  <tr>
   <td>Suporte básico</td>
   <td>{{CompatUnknown}}</td>
   <td>1.0</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatUnknown}}</td>
   <td>{{CompatUnknown}}</td>
   <td>{{CompatUnknown}}</td>
  </tr>
 </tbody>
</table>
</div>