Comment attrapez-vous l'erreur de serveur ou la page 404 non trouvée lorsque vous utilisez $ .get ou $ .post?
Par exemple:
$.post("/myhandler", { value: 1 }, function(data) {
alert(data);
});
Cela ne fera absolument rien s'il y a une erreur de serveur lors du chargement de "/ myhandler", ou si elle n'est pas trouvée.
Comment faites-vous vous informer s'il y a une erreur?
vous pourriez faire
$.post("/myhandler", { value: 1 }, function(data) {
alert(data);
}).fail(function(){
// Handle error here
});
échec sera appelé s'il y a une erreur
Les autres réponses sont bien, mais il existe des solutions alternatives, à savoir .ajaxSetup
, .ajaxError
et d'autres gestionnaires d'événements Ajax (consultez la page de la documentation sur ajaxSetup pour plus d'informations, à propos du reste).
Par exemple, avec .ajaxError
, vous pouvez configurer un gestionnaire global de toutes vos erreurs ajax à partir de .post
, .get
, .getJSON
et .ajax
pour un ensemble d'éléments spécifique.
$(selector).ajaxError(function(event, xhr, ajaxOptions, errorThrown) {
// handle ajax error here
});
Utilisez plutôt $.ajax
et utilisez le callback error
.
Essayez d’utiliser $.ajaxSetup()
, stausCode
option
$.ajaxSetup({
statusCode : {
// called on `$.get()` , `$.post()`, `$.ajax()`
// when response status code is `404`
404 : function (jqxhr, textStatus, errorThrown) {
console.log(textStatus, errorThrown);
}
}
});
// $.get("/path/to/url/");
// $.post("/path/to/url/");
// $.ajax({url:"/path/to/url/"})