Các tham số được gửi đến .fail trong jQuery là gì?


107

Tôi không thể tìm thấy tài liệu về tên của ba tham số là gì khi $.ajaxkhông thành công.

Hiện tại, tôi chỉ đang sử dụng:

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

2
Có khả năng tương tự được truyền cho errorgọi lại: jqXHR, textStatus, errorThrown.
Felix Kling

Câu trả lời:


93

Theo http://api.jquery.com/jQuery.ajax/ cuộc failgọi lại sẽ nhận được:

jqXHR, textStatus, errorThrown

giống như error, nhưng errorkhông được dùng nữa:

Thông báo ngừng sử dụng: Các lệnh gọi lại jqXHR.success (), jqXHR.error () và jqXHR.complete () sẽ không được chấp nhận trong jQuery 1.8. Để chuẩn bị mã của bạn cho việc xóa cuối cùng, hãy sử dụng jqXHR.done (), jqXHR.fail () và jqXHR.always () để thay thế.


Ồ, tôi không để ý. Cảm ơn bạn đã chia sẻ phần tài liệu đó. Tôi rất vui vì các lệnh gọi lại jQuery XHR cuối cùng cũng khớp với các Lệnh hoãn.
Michael Mior

2
Ồ, nhưng phương thức ajaxError có sự kiện, jqXHR, ajaxSettings, throwError.
Phillip Senn

Tất cả chúng đều là lệnh gọi lại giống nhau được truyền các đối số giống nhau, chỉ khác là sử dụng và ngữ cảnh.
nathanjosiah

6
Ở đâu nó chỉ ra rằng lệnh gọi lại thất bại nhận được 3 đối số này? Nó cũng nói như vậy đối với thông số cài đặt hoàn chỉnh. Các đối số này khác nhau, ví dụ: đối số tới completekhác với đối số được truyền tới done.
Tom

5
@Tom, tôi biết tôi trễ để trả lời bạn nhưng nó được nêu ở đây: api.jquery.com/jQuery.ajax/#jqXHR ( jqXHR.fail(function( jqXHR, textStatus, errorThrown ) {});)
nathanjosiah

27

Đây là một ví dụ sau khi tìm cùng một vấn đề:

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

Trong khi gỡ lỗi, tôi có:

  • jqXHR là một đối tượng JS
  • textStatus là "lỗi"
  • lỗi là "Lỗi máy chủ nội bộ", đó là thông báo lỗi do máy chủ gửi.

1
Vâng, tôi nghĩ những gì họ đang cố gắng biểu thị bằng cách sử dụng từ textStatus là đây là biến trạng thái và nó ở định dạng văn bản. So với jqXHR, là một đối tượng jQuery.
Phillip Senn
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.