2012-03-23 14 views

Odpowiedz

70

Według http://api.jquery.com/jQuery.ajax/fail zwrotna powinna być coraz:

jqXHR, textStatus, errorThrown

samo jak error, ale error jest przestarzała:

Depreca Uwaga: Funkcje jqXHR.success(), jqXHR.error() i jqXHR.complete() będą przestarzałe w jQuery 1.8. Aby przygotować kod do ewentualnego usunięcia, użyj zamiast tego jqXHR.done(), jqXHR.fail() i jqXHR.always().

+0

Ooh, nie zauważyłem. Dziękuję za udostępnienie tego fragmentu dokumentacji. Cieszę się, że callbacki jQuery XHR są w końcu zgodne z Deferreds. –

+1

Och, ale metoda ajaxError ma zdarzenie, jqXHR, ajaxSettings, thrownError. –

+0

Są to wszystkie te same wywołania zwrotne, które otrzymują te same argumenty, tylko różne zastosowania i konteksty. – nathanjosiah

21

Oto przykład po patrząc na ten sam problem:

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

podczas debugowania, mam:

  • jqXHR jest obiekt JS
  • textStatus to "błąd"
  • error to "Wewnętrzny błąd serwera", jest to komunikat o błędzie wysłany przez serwer.
+1

Tak, myślę, że to, co próbują konotować za pomocą słowa textStatus, to to, że jest to zmienna statusu i że jest w formacie tekstowym. W porównaniu do jqXHR, który jest obiektem jQuery. –

Powiązane problemy