JQuery. $.requête post .done() .fail() éviter la duplication de code
J'ai une requête post comme
$.post("test", {
ajax: "true",
action: ""
}).done(function(data){
if (data == "ok"){
//xxx
} else if (data == "err"){
//yyy
}
}).fail(function(){
//yyy
});
Comment éviter la duplication de code dans le post demande si le code de .méthode done () (commentaire 'yyy') de même dans l'échec de la méthode (commentaire 'yyy') ??
Si le serveur est le vôtre, pourquoi ne pas simplement envoyer un autre en-tête HTTP à l'erreur?
OriginalL'auteur Igor Slipko | 2012-12-20
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser toujours méthode de rappel, et la demande sera toujours aller dans ce bloc. Comme vous le savez, lorsque les données contiennent des erreurs, et non pas, cette méthode de travail pour les erreurs côté serveur. Et vous pouvez attraper côté client des erreurs en définissant le dernier bloc else.
data=="err"
lorsque la demande échoue.Je suis sûr que le
data=="err"
est pour quand la demande échoue sur le côté serveur, pas de client. Exactement comme @JanDvorak dit.merci beaucoup, je pense que c'est ce que je cherchais )
vous avez raison. data == 'err' de travail pour les erreurs côté serveur. J'ai ajouté le dernier bloc autre pour attraper côté client des erreurs.
OriginalL'auteur halilb
La plus évidente et la plus simple solution serait tout simplement d'un rappel d'échec de la sorte:
OriginalL'auteur Rudi Visser
Les avoir appeler la même fonction, par exemple
Vous devez créer une nouvelle fonction, de toute façon, nommé ou non. -- PS: s'il vous plaît changer votre nom pour commencer avec quelque chose que j'ai sur mon clavier. Il est difficile pour vous informer autrement.
OriginalL'auteur Jensen Ching
Une autre solution serait de modifier le protocole légèrement, et de faire usage de la Les codes d'état HTTP pour indiquer la réussite ou de l'échec:
...
OriginalL'auteur John Dvorak