Quels sont les paramètres envoyés à .fail dans jQuery?


107

Je ne trouve pas la documentation sur les noms des trois paramètres en cas d' $.ajaxéchec.

En ce moment, j'utilise juste:

.fail(function(A, B, C) {

2
Probablement les mêmes qui sont transmis au errorrappel: jqXHR, textStatus, errorThrown.
Felix Kling

Réponses:


93

Selon http://api.jquery.com/jQuery.ajax/, le failrappel devrait obtenir:

jqXHR, textStatus, errorThrown

identique à error, mais errorest obsolète:

Avis de dépréciation: les rappels jqXHR.success (), jqXHR.error () et jqXHR.complete () seront obsolètes dans jQuery 1.8. Pour préparer votre code en vue de sa suppression éventuelle, utilisez plutôt jqXHR.done (), jqXHR.fail () et jqXHR.always ().


Ooh, je n'ai pas remarqué. Merci d'avoir partagé cette partie de la documentation. Je suis heureux que les rappels jQuery XHR correspondent enfin aux différés.
Michael Mior

2
Oh, mais la méthode ajaxError a event, jqXHR, ajaxSettings, thrownError.
Phillip Senn

Ce sont tous les mêmes rappels qui reçoivent les mêmes arguments, juste des utilisations et des contextes différents.
nathanjosiah

6
Où indique-t-il que le rappel d'échec obtient ces 3 arguments? Il l'indique également pour le paramètre de réglage complet. Ceux-ci sont différents, par exemple les arguments de completesont différents des arguments passés à done.
Tom

5
@Tom, je sais que je suis en retard pour vous répondre mais c'est indiqué ici: api.jquery.com/jQuery.ajax/#jqXHR ( jqXHR.fail(function( jqXHR, textStatus, errorThrown ) {});)
nathanjosiah

27

Voici un exemple après avoir recherché le même problème:

this.GetOrderList = function (customerId) {
    var self = this;
    $.post('MySuperServer.aspx', { customerId: customerId })
    .done(function (dataStr) {
        var orderList = jQuery.parseJSON(dataStr);
        self.process(orderList);
    })
    .fail(function (jqXHR, textStatus, error) {
        console.log("Post error: " + error);
    });
}

Pendant le débogage, j'ai:

  • jqXHR est un objet JS
  • textStatus est une "erreur"
  • l'erreur est "Erreur interne du serveur", c'est le message d'erreur envoyé par le serveur.

1
Oui, je pense que ce qu'ils essaient de connoter en utilisant le mot textStatus, c'est que c'est la variable de statut et qu'elle est au format texte. Par rapport à jqXHR, qui est un objet jQuery.
Phillip Senn
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.