Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Tratar Http 404

Tratar Http 404

4 respostas

Boa tarde!

Sim, é possível, e é possível tratar outros erros / códigos, como o 301, 500, 404, 200, etc...

Tanto em sucesso quanto erro, dependendo do código a ser tratado.

Basta utilizar os demais parâmetros das funções de sucesso e erro, normalmente usamos apenas o primeiro parâmetro, mas existem vários outros.

veja:

$http.get('/minha-url').
  success(function(data, status, headers, config) {
    // no caso de sucesso
  }).
  error(function(data, status, headers, config) {
    // no caso de erro
    // o 404 pode ser verificado com o conteúdo do parâmetro 'status'
  });

Só para complementar, o exemplo que passei foi com angular.

Mas pode ser feito com javascript puro, jquery, etc...

jQuery:

$.ajax({
    //...        
    success: function(data, textStatus, xhr) {
        console.log(xhr.status);
    },
    complete: function(xhr, textStatus) {
        console.log(xhr.status);
    } 
});

JavaScript:

var xmlhttp = new XMLHttpRequest();

xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == XMLHttpRequest.DONE ) {
       if (xmlhttp.status == 200) {
           document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
       }
       else if (xmlhttp.status == 400) {
          alert('Erro 400');
       }
       else {
           alert('qualquer outro retorno que não é 200 ou 400');
       }
    }
};

xmlhttp.open("GET", "meu link", true);
xmlhttp.send();
solução!

Adriano,

Obrigado pela resposta.

Mas, esses tratamentos já são quando o response passa pela aplicação...no meu caso o browser requisita para o servidor a página, e o servidor antes de chegar na aplicação retorna 404.

Bom dia!

Se no seu caso não carrega absolutamente nada da aplicação, é impossível tratar os retornos do HTTP do lado do cliente.

Para fazer qualquer coisa, é preciso que haja pelo menos um javascript do lado do cliente.