Apa saja parameter yang dikirim ke .fail di jQuery?

107

Saya tidak dapat menemukan dokumentasi tentang apa nama dari ketiga parameter tersebut ketika $.ajaxgagal.

Saat ini, saya hanya menggunakan:

.fail(function(A, B, C) {
Phillip Senn
sumber
2
Kemungkinan yang sama yang dilewatkan ke errorcallback: jqXHR, textStatus, errorThrown.
Felix Kling

Jawaban:

93

Menurut http://api.jquery.com/jQuery.ajax/ yang failcallback harus mendapatkan:

jqXHR, textStatus, errorThrown

sama seperti error, tetapi errortidak digunakan lagi:

Pemberitahuan Penghentian: Callback jqXHR.success (), jqXHR.error (), dan jqXHR.complete () tidak akan digunakan lagi di jQuery 1.8. Untuk mempersiapkan kode Anda untuk penghapusan akhirnya, gunakan jqXHR.done (), jqXHR.fail (), dan jqXHR.always () sebagai gantinya.

nathanjosiah
sumber
Ooh, saya tidak menyadarinya. Terima kasih telah membagikan dokumentasi itu. Saya senang callback jQuery XHR akhirnya cocok dengan Deferreds.
Michael Mior
2
Oh, tapi metode ajaxError memiliki event, jqXHR, ajaxSettings, thrownError.
Phillip Senn
Mereka semua adalah callback yang sama yang diteruskan dengan argumen yang sama, hanya penggunaan dan konteks yang berbeda.
nathanjosiah
6
Di mana ia menyatakan bahwa callback gagal mendapatkan 3 argumen ini? Ini juga menyatakan demikian untuk parameter pengaturan lengkap. Ini berbeda, misalnya argumen ke completeberbeda dari argumen yang diteruskan done.
Tom
5
@Tom, saya tahu saya terlambat untuk menanggapi Anda tetapi dinyatakan di sini: api.jquery.com/jQuery.ajax/#jqXHR ( jqXHR.fail(function( jqXHR, textStatus, errorThrown ) {});)
nathanjosiah
27

Berikut contoh setelah mencari masalah yang sama:

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

Saat men-debug, saya mendapat:

  • jqXHR adalah objek JS
  • textStatus adalah "error"
  • kesalahannya adalah "Kesalahan Server Internal", ini adalah pesan kesalahan yang dikirim oleh server.
Olivier de Rivoyre
sumber
1
Ya, saya pikir apa yang mereka coba konotasikan dengan menggunakan kata textStatus adalah bahwa ini adalah variabel status dan dalam format teks. Dibandingkan dengan jqXHR, yang merupakan objek jQuery.
Phillip Senn