2013-05-15 32 views
10

Tôi không chắc chắn lý do tại sao điều này xảy ra nhưng tôi có một Mã Ajax đơn giản: thực hiện các mã trạng tháiAjax thất bại nhưng mã trạng thái vẫn còn 200 "OK"

$.ajax({ url: "/javascript/testing.js"}) 
    .done(function(data){ console.log(data) }) 
    .fail(function(jqXHR, textStatus, errorThrown) { 
     console.log(jqXHR); 
    }); 

.fail() get là "OK". Ngoài ra, dữ liệu có trong responceText cho dữ liệu thực tế hợp lệ. Tại sao chuyện này đang xảy ra?

enter image description here

+0

gì là 'responsceText'? – karthikr

+0

@karthikr dữ liệu hợp lệ, 'javascript' trong trường hợp của tôi. Lỗi là 'parseerror' – Kivylius

+0

@Jessica Bạn có thể kiểm tra yêu cầu trong trình duyệt để xem liệu có bất kỳ thông tin bổ sung nào không? –

Trả lời

12

Nếu bạn muốn phân tích các tập tin javascript, thì datatype nên script:

$.ajax({ url: "/javascript/testing.js", dataType: "script" }) 
.done(function(data){ console.log(data) }) 
.fail(function(jqXHR, textStatus, errorThrown) { 
    console.log(jqXHR); 
}); 

Nếu bạn vẫn đang nhận được một parserError sau đó có một vấn đề với tập tin testing.js của bạn.

Nếu bạn không muốn phân tích nó và chỉ cần lấy nó, sau đó các datatype nên text:

$.ajax({ url: "/javascript/testing.js", dataType: "text" }) 
+0

testing.js của nó chỉ là tệp javascript thông thường. Tôi thay thế nội dung thành 'test' và nó vẫn không hoạt động. – Kivylius

+0

chỉ 'kiểm tra' không phải là javascript hợp lệ. Nếu bạn muốn truy xuất nó mà không phân tích cú pháp nó dưới dạng javascript, hãy đặt dataType thành 'text'. Tôi đã cập nhật câu trả lời của mình để phản ánh điều này. – nullability

+1

Loại dữ liệu: "văn bản" hoạt động, tốt, cảm ơn bạn +1; – Kivylius

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