Como lidar com erro HTTP específico para todas as chamadas AJAX?
Eu tenho um aplicativo da web, solicitando e enviando dados via AJAX, e como resposta, meu servidor envia códigos de status HTTP, dependendo da situação. Assim, por exemplo, se um usuário tenta fazer o login enquanto ele está logado eu provavelmente devolver um400 HTTP status code
. E eventualmente eu ligo com um alerta, etc.
Mas lidar com esses códigos de status HTTP fica muito pesado, já que estou usando muito o AJAX. Isso significa que vou lidar com o código de status HTTP repetidamente com cada solicitação AJAX, o que resultará em código duplicado, e isso é uma prática ruim.
Assim,O que estou olhando é uma maneira de lidar com todos esses erros em um só lugar, então eu apenas manejo tudo400
, 401
, etc com o mesmo código.
O que estou fazendo atualmente:
Manipulando os erros manualmente para cada chamada AJAX. Usando ostatusCode
em$.ajax()
.
statusCode: {
500: function(data) {
alert('Some friendly error message goes here.');
}
Parece um exagero para mim, conforme meu aplicativo da web se desenvolve, e ao criar mais chamadas ajax. Vou repetir este pedaço de código de novo e de novo.
Atualmente, a única ideia que tenho em mente é criar uma função que funcione em cima do AJAX, algo como:
function doAjax(type,url, data, moreVars) {
//this function is just a SIMPLE example, could be more complex and flexible.
$.ajax({
type: type,
url: url,
data: data,
moreOptions:moreVars,
//now handling all status code.
statusCode: {
//handle all HTTP errors from one place.
}
});
}
doAjax("POST", 'mydomain.com/login.php', dataObj);