Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Não obtenho o erro 404


var botaoAdicionar = document.querySelector("#buscar-pacientes");

botaoAdicionar.addEventListener("click", function() {
    var xhr = new XMLHttpRequest();

    xhr.open("GET", "https://api-pacientes11.herokuapp.com/pacientes");
    console.log("Status -1: " + xhr.status);

    xhr.addEventListener("load", function() {
        var erroAjax = document.querySelector("#erro-ajax");
        console.log("Status 0: " + xhr.status);
        if (xhr.status == 200) {
            console.log("Status 1: " + xhr.status);
            erroAjax.classList.add("invisivel");
            var resposta = xhr.responseText;
            var pacientes = JSON.parse(resposta);

            pacientes.forEach(function(paciente) {
                adicionaPacienteNaTabela(paciente);
            });
        } else {
            console.log("Status 2: " + xhr.status);
            erroAjax.classList.remove("invisivel");
        }
    });

    console.log("Status 3: " + xhr.status);
    xhr.send();
    console.log("Status 4: " + xhr.status);
});
1 resposta
solução!

Se você abrir o console do navegador, clicar na aba "Network" (rede) e depois abrir este endereço, vai perceber que ele gerou duas linhas, na primeira aparece "pacientes", com o status de erro "404" e depois aparece "no-such-app.html" com o status 200.

Você poderia tentar neste caso validar se o conteúdo do retorno é valido, ou seja, um JSON. Caso não seja, mesmo que retorne 200, executar a programação do erro.

No link abaixo tem algumas sugestões:

http://stackoverflow.com/questions/3710204/how-to-check-if-a-string-is-a-valid-json-string-in-javascript-without-using-try