Tratar Http 404
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Tratar Http 404
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();
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.