La documentation indique que la fonction error: option rendra disponible: une instance XHR, une chaîne de message d'état (dans ce cas toujours une erreur) et un objet d'exception facultatif renvoyé par l'instance XHR (Livre: JQuery en action)
En utilisant ce qui suit (dans l'appel $ .ajax), j'ai pu déterminer que j'avais une erreur "parsererror" et "timeout" (depuis que j'ai ajouté timeout: option)
error: function(request, error){}
Quelles sont les autres choses que vous évaluez dans l'option d'erreur? incluez-vous l'objet d'exception facultatif?
EDIT: l'une des réponses indique toutes les erreurs de retour ... en savoir plus sur ce qui a de la valeur (pour le débogage) dans l'instance XHR et l'objet exception serait utile
Ceci est un appel $ .ajax complet:
$.ajax({
type: "post",
url: "http://myServer/cgi-bin/broker" ,
dataType: "text",
data: {
'_service' : 'myService',
'_program' : 'myProgram',
'start' : start,
'end' : end
},
beforeSend: function() {
$("#loading").removeClass("hide");
},
timeout: 5000,
error: function(request,error) {
$("#loading").addClass("hide");
if (error == "timeout") {
$("#error").append("The request timed out, please resubmit");
}
else {
$("#error").append("ERROR: " + error);
}
},
success: function(request) {
$("#loading").addClass("hide");
var t = eval( "(" + request + ")" ) ;
} // End success
}); // End ajax method
Merci pour la contribution
En regardant le code source jQuery, il y a quatre statuts retournés, en plus de succès:
Je trouve la demande plus utile que l'erreur.
error:function(xhr,err){
alert("readyState: "+xhr.readyState+"\nstatus: "+xhr.status);
alert("responseText: "+xhr.responseText);
}
xhr est XmlHttpRequest.
readyState les valeurs sont 1: chargement, 2: chargé, 3: interactif, 4: complet .
état est le numéro d'état HTTP, c'est-à-dire 404: introuvable, 500: erreur du serveur, 200: ok .
responseText est la réponse du serveur - cela peut être du texte ou du JSON du service Web, ou du HTML du serveur Web.
C'est un aparté, mais je pense qu'il y a un bug dans le code que vous avez soumis. La ligne:
if (error = "timeout") {
devrait avoir plus de signes égaux:
if (error == "timeout") {
Le deuxième argument transmis à votre fonction d'erreur sera la chaîne "timeout" "parserror" "error" ou "notmodified". Le troisième sera l'objet d'exception. Cet objet peut être utile pour le débogage.
Êtes-vous sûr que la réponse est correcte? Une erreur d'analyse signifie qu'il y a un problème avec les données qui sont évaluées dans la ligne var t = eval( "(" + request + ")" ) ;