Comment gérer ajax 201

Lorsque vous créez un appel ajax, voir l'exemple ci-dessous «succès» obtient un statut 201 remis. Comment gère-t-on mieux cela, c'est-à-dire 200, 201 dans la fonction de réussite?

$.ajax({ type: "POST", dataType: "json", url: "http://api.domain.com/sms", data: { // Send value in mobile input field. mobile: $("#mobile").val(), }, // On successful AJAX call do the following. success: function(data){ $('#messageText').text('SMS successfully sent'); }, error: function(jqXhr){ data = JSON.parse(jqXhr.responseText); } 

Utilisez l'objet statusCode :

 var handle200 = function(data, textStatus, jqXHR) { alert('200'); // success codes have the success signature }; var handle201 = function(data, textStatus, jqXHR) { alert('201'); // success codes have the success signature // test it if you are in doubt: console.log(data); console.log(textStatus); console.log(jqXHR); }; var handle404 = function(jqXHR, textStatus, errorThrown) { alert('404'); // failing codes have the error signature }); var request = $.ajax({ type: 'POST', url: '/myresource/posttarget', data: { name: 'john' }, statusCode: { 200: handle200, 201: handle201, 404: handle404 } }); 

C'est une question ancienne, mais j'aimerais commenter de toute façon.

J'ai eu le même problème et une chose qui l'a résolu était de laisser le "dataType" désactivé. Lorsque vous faites cela, jQuery tentera de deviner le type de données que le serveur retourne et ne lancera pas d'erreur lorsque votre serveur renvoie un 201 sans contenu.

J'espère que cela aide.

Les données ont été inscrite mais jquery est toujours une erreur de retour

La réponse ici semble être un travail que vous pouvez utiliser pour l'instant. Toutefois, si vous utilisez un multi-domaine, AJAX a des problèmes avec cela. Découvrez ce fil SOF sur celui-ci:

Problèmes de lecture de l'état HTTP / Code d'erreur de jQuery AJAX

Nous avons eu un problème similaire; En regardant la source jquery 1.9, un code d'état 201 prévoit un contenu. S'il n'y a pas de contenu (ou du mauvais type de contenu) renvoyé avec le 201, le renvoi d'échec est invoqué.