2012-06-26 33 views
21

Tôi có một ứng dụng web treo trên yêu cầu ajax với google chrome (nó hoạt động với mọi trình duyệt web khác mà nó đã được thử nghiệm). Sau khi gỡ lỗi, tôi thấy rằng lỗi được gây ra bởi response.responseText không được xác định. Các đối tượng XHR trông như thế này:Làm thế nào để gỡ lỗi một yêu cầu ajax thất bại trong google chrome?

argument: undefined 
isAbort: false 
isTimeout: undefined 
status: 0 
statusText: "communication failure" 
tId: 3 

Trong debugger trong tab 'mạng' Tôi nhận được "(thất bại)", tuy nhiên tất cả các tiêu đề là ở đó và tôi thậm chí có thể sao chép vào clipboard cơ thể phản ứng (mà là một JSON hợp lệ).

Câu hỏi của tôi là - làm cách nào tôi có thể gỡ lỗi vấn đề này? Nơi tìm thông tin bổ sung, nguyên nhân khiến yêu cầu này thất bại?

+0

Vui lòng cung cấp thêm thông tin về máy chủ và cơ sở hạ tầng mạng. Có phải lỗi xảy ra mỗi lần bạn đưa ra yêu cầu hoặc không thường xuyên? – Stan

+0

Bạn có thể cho biết cách thực hiện cuộc gọi AJAX không? Ngoài ra, bạn có thể vui lòng cho biết trình duyệt nào đang hoạt động không? – Uooo

+0

Bạn không nhận được bất kỳ lỗi nào trong bảng điều khiển JavaScript? –

Trả lời

4

Điều đầu tiên tôi kiểm tra lại là dữ liệu quay lại từ phản hồi là JSON hợp lệ. Chỉ cần chuyển qua trình xác thực JSON như JSONLint trực tuyến này: http://jsonlint.com/

Tôi cho rằng bạn đang sử dụng thứ gì đó như jQuery để thực hiện các yêu cầu AJAX của mình. Nếu vậy, hãy đảm bảo rằng bạn đang sử dụng phiên bản phát triển của thư viện đó. Bây giờ bạn đang sử dụng phiên bản phát triển (chưa nén) của tập lệnh, hãy tìm hàm cụ thể mà bạn đang sử dụng (ví dụ: $ .ajax) và sau đó, trong trình kiểm tra Chrome, chèn điểm ngắt trong mã nơi phản hồi AJAX đầu tiên được xử lý (ví dụ: https://github.com/jquery/jquery/blob/master/src/ajax.js#L579). Sau đó tiến hành bước qua mã, kiểm tra các giá trị trả về khác nhau để xem chính xác những gì đang xảy ra.

Nếu bạn không sử dụng một cái gì đó như jQuery để thực hiện cuộc gọi AJAX, thì tôi khuyên bạn nên sử dụng một khuôn khổ để tránh các vấn đề tương thích trình duyệt chéo có thể xảy ra như bạn hiện đang gặp phải.

+0

Tôi không chắc liệu đây có phải là sửa chữa chính xác hay không, như đã lâu rồi, nhưng tôi không nghĩ rằng json không hợp lệ có thể là lý do để hiển thị yêu cầu là không thành công. Vì vậy, tôi chấp nhận anwer của bạn hy vọng rằng nếu tôi gặp phải điều này trong tương lai, nó sẽ rất hữu ích. – zefciu

13

Cuối cùng tôi đã tìm ra giải pháp cho vấn đề của mình: AdBlocks, plugin này là một trong những điều hữu ích nhất ở đây, nhưng khi nó chặn thứ gì đó trong trang web của bạn, nó không nói tại sao!

+3

CẢM ƠN BẠN để chỉ ra điều này. Đã dành tốt hơn của buổi chiều đập đầu của tôi về điều này. – applepie

+2

[HTTP ở mọi nơi] (https://www.eff.org/https-everywhere) đã gây ra sự cố của tôi. – Hengjie

+1

cảm ơn, bạn đã cứu ngày của tôi! adBlocks ngăn các yêu cầu ajax như quảng cáo/thêm ... ngoại trừ miền từ adBlocks đã giải quyết được vấn đề của tôi! – RezaSh

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