--- 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>