--- title: XMLHttpRequest.onreadystatechange slug: Web/API/XMLHttpRequest/readystatechange_event tags: - AJAX - API - Evento - Manipulador de eventos - XHR - XMLHttpRequest translation_of: Web/API/XMLHttpRequest/onreadystatechange original_slug: Web/API/XMLHttpRequest/onreadystatechange ---
{{APIRef}}

Um EventHandler é chamado sempre que o atributo readyState é modificado. O callback é chamado a partir da interface do usuário. A propriedade XMLHttpRequest.onreadystatechange contém o manipulador de eventos que é chamado quando o evento readystatechange é disparado, ou seja, toda vez que a propriedade {{domxref("XMLHttpRequest.readyState", "readyState")}} do {{domxref("XMLHttpRequest")}} é modificada.

Atenção: Isso não deve ser usado com solicitações síncronas e não deve ser usado como código nativo.

O evento readystatechange não será chamado quando a XMLHttpRequest request for cancelada pelo método abort().

Atualização: Está disparando na última versão de navegadores (Firefox 51.0.1, Opera 43.0.2442.991, Safari 10.0.3 (12602.4.8), Chrome 54.0.2840.71, Edge, IE11). Exemplo aqui - basta recarregar a página algumas vezes.

Sitaxe

XMLHttpRequest.onreadystatechange = callback;

Valores

Exemplo

var xhr = new XMLHttpRequest(),
    method = "GET",
    url = "https://developer.mozilla.org/";

xhr.open(method, url, true);
xhr.onreadystatechange = function () {
        if(xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
            console.log(xhr.responseText);
        }
    };
xhr.send();

Especificação

Especificação Status Comentário
{{SpecName('XMLHttpRequest', '#handler-xhr-onreadystatechange')}} {{Spec2('XMLHttpRequest')}} WHATWG living standard

Compatibilidade com navegadores

{{CompatibilityTable}}

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support {{CompatChrome(1)}} {{CompatGeckoDesktop(1.0)}} {{CompatIe(7)}}[1] {{CompatVersionUnknown}} {{CompatSafari(1.2)}}
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support {{CompatUnknown}} 1.0 {{CompatVersionUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}}

[1] Internet Explorer versão 5 e 6 suportam chamadas ajax usando ActiveXObject().