Option d’erreur JQuery dans l’utilitaire $ .ajax

La documentation indique que la fonction error: error rendra disponible: une instance XHR, une chaîne de message d’état (dans ce cas toujours une erreur) et un object exception facultatif renvoyé depuis l’instance XHR (Book: JQuery in Action)

En utilisant l’appel suivant (dans l’appel $ .ajax), j’ai pu déterminer que j’avais une erreur de “parsererror” et un “timeout” (depuis que j’ai ajouté le timeout: option)

error: function(request, error){} 

Quelles sont les autres choses que vous évaluez dans l’option d’erreur? incluez-vous l’object exception facultatif?

EDIT: une des réponses indique toutes les erreurs de retour … en savoir plus sur ce qui est utile (pour le débogage) dans l’instance XHR et l’object exception seraient utiles

Ceci est un appel complet à $ .ajax:

 $.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 consortingbution

En regardant le code source de jQuery, il y a quatre statuts retournés, en plus du succès :

  • délai d’attente – lorsque votre délai d’attente spécifié est dépassé
  • erreurerreur http, comme 404
  • notmodified – lorsque la ressource demandée n’a pas été modifiée depuis la dernière demande
  • Parsererror – Quand une réponse xml / json est mauvaise

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.
Les valeurs de readyState sont 1: chargement, 2: chargé, 3: interactif, 4: complet .
status est le numéro d’état HTTP, à savoir 404: non trouvé, 500: erreur de serveur, 200: ok .
responseText est la réponse du serveur. Il peut s’agir de texte ou de code JSON du service Web ou de code HTML du serveur Web.

Ceci 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 dedans:

  if (error == "timeout") { 

Le deuxième argument transmis à votre fonction d’erreur sera soit la chaîne “timeout” “Parserror” “error” ou “notmodified”. Le troisième sera l’object exception. Cet object peut être utile pour le débogage.

Êtes-vous sûr que cette réponse est correcte? Erreur d’parsing signifie qu’il y a une erreur avec les données évaluées dans la ligne var t = eval( "(" + request + ")" ) ;