Mam aplikację internetową, wysyłając żądanie i wysyłając dane przez AJAX, a w odpowiedzi moja strona wysyła kody statusu HTTP, w zależności od sytuacji. więc na przykład, jeśli użytkownik próbuje zalogować się podczas logowania, prawdopodobnie zwróci 400 HTTP status code
. I w końcu mam do czynienia z alarmem, itp.Jak obsługiwać określony błąd HTTP dla wszystkich wywołań AJAX?
Jednak obsługa tych kodów statusu HTTP staje się zbyt ciężka, ponieważ intensywnie korzystam z AJAX. to oznacza, że będę obsługiwać kod stanu HTTP wielokrotnie przy każdym żądaniu AJAX, co spowoduje skopiowanie kodu i jest to zła praktyka.
Więc co szukam jest sposób, aby obsłużyć wszystkie te błędy w jednym miejscu, więc po prostu obsłużyć wszystkie 400
, 401
, etc z tym samym kodem.
co mam aktualnie robi:
Handling błędy ręcznie dla każdego wywołania AJAX. Korzystając z statusCode
w $.ajax()
.
statusCode: {
500: function(data) {
alert('Some friendly error message goes here.');
}
Wydaje się overkill dla mnie, jak rozwija się moja aplikacja internetowa, a jak utworzyć więcej połączeń AJAX. Powtarzam ten fragment kodu raz za razem.
Obecnie jedynym pomysł mam w głowie jest stworzenie funkcji, która będzie działać na szczycie AJAX, coś jak:
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);
* "Uwaga: Globalne funkcje zwrotne powinny być ustawione z ich globalnych Ajax-'.ajaxStart metod obsługi zdarzeń()', '.ajaxStop()' '. ajaxComplete() ',' .ajaxError() ',' .ajaxSuccess() ',' .ajaxSend() '-rather niż w obiekcie options dla' $ .ajaxSetup() '." * – josh3736