Wiem, jak odebrać dane serwera lub błąd. Jest wiele sposobów. Na przykład:Zapobieganie nieobsługiwanemu jQuery Błąd AJAX
$.ajax({
type: "get",
url: "/widgets/",
success: function (data, text) {
console.log('this is a data');
},
error: function (request, status, error) {
console.log('this is an error');
}
});
Proszę zobaczyć ten obraz:
Mam funkcji błędu i robię to, co muszę tam. Jak zapobiec błędom w pierwszym wierszu. Testowałem błędy 4x i 5xx, ale bez różnicy. Wiem, że ten użytkownik końcowy nie widzi tego błędu, gdy konsola programisty jest ukryta.
Potrzebuję tego do zaprojektowania interfejsu API. Wiem, że mogę wysłać 200 odpowiedzi z serwera z dodatkowym argumentem, który pokazuje, że jest to błąd lub wynik sukcesu.
Ale jeśli mogę wysłać 4xx lub 5xx odpowiedzi, to nie ma potrzeby dodatkowego argumentu. Ten sposób ma dla mnie dodatkowe korzyści. Na przykład mogę zastosować wynik sukcesu do moich modeli po stronie klienta bez obawy o dodatkowe argumenty.
Dziękuję
jQuery 1.9.1.js: 8526 '// To może spowodować wyjątek, który jest actually' ' // traktowane jQuery.ajax (tak nie try/catch tutaj) '' xhr.send ((s.hasContent && s.data) || null); ' – iman
Zawijanie' xhr.send' w 'try/catch' nie ** nie ** zapobiega wyświetlaniu błędu w konsoli programisty. Zauważ, że są to * nie * błędy/wyjątki JS, ale są związane z * żądaniem * wysyłanym przez przeglądarkę, więc próba złapania błędu JS nie zadziała. – gkalpak
Wypróbuj tę odpowiedź: http://stackoverflow.com/questions/7436195/disabling-some-jquery-global-ajax-event-handlers-for-a-request – JVE999