2009-10-13 10 views
1

Mon problème serait que je fais une requête POST avec jQuery, et s'il y a une erreur, je modifie le statut HTTP par exemple 401 et renvoyer l'erreur. (J'utilise $ .ajax();) Donc, le problème est que je ne sais pas comment imprimer ce message d'erreur.Comment obtenir la réponse?

Si je vérifie dans Firebug je reçois quelque chose comme ceci: {"*THE URL OF THE FILE*":{"rc":401,"body":"*error message*"}}

Quelqu'un peut-il me dire comment imprimer ce message d'erreur sur? (Par exemple avec alert();)

Merci.

Répondre

3

Je crois qu'il y a une différence entre $ .post et $ .ajax ... $ .ajax inclut à la fois une option de rappel de succès et d'erreur où $ .post n'a que la fonction de succès. Lire here pour plus d'informations ...

Cela dit, peut-être le $ .ajax serait un meilleur moyen de capturer l'erreur? Voici un exemple du jQuery site sur la façon dont cela est fait.

$.ajax({ 
      url: "script.php", 
      global: false, 
      type: "POST", 
      data: ({id : this.getAttribute('id')}), 
      dataType: "html", 
      success: function(){ 
      //Happy Path... 
      }, 
      error: function(msg){ 
      alert(msg.status); 
      } 
     }; 

Jetez un oeil à la "erreur: function (msg)" ...

+0

J'ai essayé celui-ci, et la réponse dans ce cas est un objet. – Tom

+0

@Thomas: Lancer firebug et regarder les propriétés de celui-ci ... – RSolberg

+0

Il contient le type de requête, l'URL, les données, etc. Mais il n'y a pas de réponse:/ – Tom

0

En fonction d'erreur, vous pouvez utiliser simplement comme

error: function(err){ 
      alert(err.responseText); 
      } 

Ici responseText vous donnera l'erreur exacte message où vous avez été manquant.

Questions connexes