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) {
Phillip Senn
la source
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 ().

nathanjosiah
la source
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.
Olivier de Rivoyre
la source
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