Quali sono i parametri inviati a .fail in jQuery?


107

Non riesco a trovare la documentazione su quali sono i nomi dei tre parametri quando $.ajaxfallisce.

In questo momento, sto solo usando:

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

2
Probabilmente gli stessi che vengono passati al errorcallback: jqXHR, textStatus, errorThrown.
Felix Kling

Risposte:


93

Secondo http://api.jquery.com/jQuery.ajax/ la failrichiamata dovrebbe essere:

jqXHR, textStatus, errorThrown

uguale a error, ma errorè deprecato:

Avviso di deprecazione: i callback jqXHR.success (), jqXHR.error () e jqXHR.complete () saranno deprecati in jQuery 1.8. Per preparare il codice per la loro eventuale rimozione, utilizzare invece jqXHR.done (), jqXHR.fail () e jqXHR.always ().


Ooh, non l'ho notato. Grazie per aver condiviso quella parte della documentazione. Sono contento che i callback di jQuery XHR stiano finalmente combaciando con i differiti.
Michael Mior

2
Oh, ma il metodo ajaxError ha eventi, jqXHR, ajaxSettings, thrownError.
Phillip Senn

Sono tutti gli stessi callback a cui vengono passati gli stessi argomenti, solo usi e contesti diversi.
nathanjosiah

6
Dove afferma che il callback fallito ottiene questi 3 argomenti? Lo afferma anche per il parametro di impostazione completo. Questi sono diversi, ad esempio gli argomenti a completesono diversi dagli argomenti passati a done.
Tom

5
@ Tom, so di essere in ritardo per risponderti, ma è indicato qui: api.jquery.com/jQuery.ajax/#jqXHR ( jqXHR.fail(function( jqXHR, textStatus, errorThrown ) {});)
nathanjosiah

27

Ecco un esempio dopo aver cercato lo stesso problema:

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);
    });
}

Durante il debug, ho:

  • jqXHR è un oggetto JS
  • textStatus è "errore"
  • l'errore è "Errore interno del server", è il messaggio di errore inviato dal server.

1
Sì, penso che quello che stanno cercando di connotare usando la parola textStatus è che questa è la variabile di stato e che è in formato testo. Rispetto a jqXHR, che è un oggetto jQuery.
Phillip Senn
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.