Jak obsługiwać określony błąd HTTP dla wszystkich połączeń AJAX?
Mam aplikację internetową, żądającą i wysyłającą dane przez AJAX, a w odpowiedzi moja strona serwerowa wysyła kody statusu HTTP, w zależności od sytuacji. na przykład, jeśli użytkownik próbuje się zalogować, gdy jest zalogowany, prawdopodobnie zwracam400 HTTP status code
. W końcu radzę sobie z alarmem itp.
Jednak obsługa tych kodów statusu HTTP staje się zbyt ciężka, ponieważ intensywnie korzystam z AJAX. oznacza to, że będę obsługiwał kod statusu HTTP wielokrotnie z każdym żądaniem AJAX, co spowoduje powielenie kodu i to jest zła praktyka.
Więc,czego szukam to sposób na obsłużenie wszystkich tych błędów w jednym miejscu, więc po prostu zajmuję się wszystkimi400
, 401
, itp. z tym samym kodem.
Co aktualnie robię:
Ręczna obsługa błędów dla każdego wywołania AJAX. UżywającstatusCode
w$.ajax()
.
statusCode: {
500: function(data) {
alert('Some friendly error message goes here.');
}
Wydaje mi się, że jest to przesada, ponieważ moja aplikacja internetowa rozwija się i gdy tworzę więcej połączeń ajaxowych. Powtarzam ten kod raz po raz.
Obecnie jedynym pomysłem, jaki mam na myśli, jest stworzenie funkcji, która będzie działać na AJAX-ie, na przykład:
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);