2009-06-21 26 views
10

Có một yêu cầu Ajax do lỗi không xác định trong jQuery. Nhưng nó hoạt động cục bộ. Lỗi tham khảo trong jquery1.3.2.js @ 3633 dòngLỗi XMLHttpRequest jQuery

xhr.send(s.data); 

Mã của tôi là:

$.ajax({ 
    type: "POST", 
    url: 'index.php', 
    data: "action=showpath&type=images&path=&default=1", 
    cache: false, 
    dataType: "html", 
    success: function(data){ 
     $('#addr').html(data); 
    }, 
    error:function (xhr, ajaxOptions, thrownError){ 
      alert(xhr.status); 
      alert(thrownError); 
    }  
}); 

cảnh báo trong mã cho thấy tôi (0, 'undefined');

Tôi đang làm gì sai?

Trả lời

23

Điều này có thể xảy ra nếu yêu cầu ajax của bạn bị hủy trước khi hoàn thành. jQuery ném sự kiện lỗi khi người dùng điều hướng khỏi trang bằng cách làm mới, nhấp vào liên kết hoặc thay đổi URL trong trình duyệt. Bạn có thể phát hiện các loại lỗi này bằng cách triển khai trình xử lý lỗi cho cuộc gọi ajax và kiểm tra đối tượng xmlHttpRequest:

$.ajax({ 
    /* ajax options omitted */ 
    error: function (xmlHttpRequest, textStatus, errorThrown) { 
     if(xmlHttpRequest.readyState == 0 || xmlHttpRequest.status == 0) 
       return; // it's not really an error 
     else 
       // Do normal error handling 
}); 
0

Không thể nói ya một cách dễ dàng, nhưng có thể là điều gì đó ở phía máy chủ trong index.php. Cách tốt nhất để nói là xem xét phản hồi thô bằng cách sử dụng trình gỡ lỗi http. Tiện ích mở rộng firefox Firebug có phần mở rộng khá tốt và fidder2 là một tùy chọn mạnh mẽ.

+0

Tôi đã thử nghiệm nó bằng firebug. Có phản ứng sai lầm bị bỏ qua, nhưng tình trạng của chính nó là 200 - OK. Yêu cầu Ajax trả về ajaxError mà không cần giải thích. –

+0

Tôi đã tìm thấy mô tả sự cố tương tự tại http://www.mail-archive.com/[email protected]/msg65106.html Nhưng vẫn không có giải pháp. –

Các vấn đề liên quan