Je voudrais attraper l'erreur et afficher le message approprié si la demande Ajax échoue.
Mon code est le suivant, mais je n'ai pas réussi à intercepter la demande Ajax en échec.
function getAjaxData(id)
{
$.post("status.ajax.php", {deviceId : id}, function(data){
var tab1;
if (data.length>0) {
tab1 = data;
}
else {
tab1 = "Error in Ajax";
}
return tab1;
});
}
J'ai découvert que, "Erreur dans Ajax" n'est jamais exécuté lorsque la demande Ajax a échoué.
Comment gérer l'erreur Ajax et afficher le message approprié en cas d'échec?
$.ajax
plus lisible consiste à utiliser un hachage pour votre fichierdata
. Par exemple:{ name : 'John', location: 'Boston' }
$.post().error()
jQuery 1.5 a ajouté des objets différés qui gèrent bien cela. Appelez
$.post
et attachez simplement les gestionnaires que vous souhaitez après l'appel. Les objets différés vous permettent même d'attacher plusieurs gestionnaires de réussite et d'erreur.Exemple:
Avant jQuery 1.8, la fonction
done
était appeléesuccess
et afail
été appeléeerror
.la source
responseJSON
propriété qui est également très pratique dans le cas du type ajaxjson
.la source
la source
Un moyen simple consiste à implémenter ajaxError :
Par exemple:
Je suggère de lire la documentation ajaxError . Il fait plus que le simple cas d'utilisation démontré ci-dessus - principalement son rappel accepte un certain nombre de paramètres:
la source
Vous devez enregistrer le responseText:
la source
vous attachez le gestionnaire .onerror à l'objet ajax, pourquoi les gens insistent pour publier JQuery pour les réponses lorsque vanila fonctionne sur plusieurs plates-formes ...
exemple rapide:
la source