Điều này thực sự boggling tâm trí của tôi. Tôi nhận được một lỗi gọi lại từ ajax. Nhưng nếu tôi lấy res.responseText (quay lại đúng, btw) từ thông báo lỗi và sử dụng nó, nó sẽ làm đúng. Cũng giống như tôi đã nhận được một cuộc gọi lại thành công.gọi jquery ajax trả về lỗi với trạng thái mô phỏng 4, trạng thái 200, statustext ok
Dữ liệu được thiết lập như thế này:
var dataToSend = {fieldname : textdata};
và cuộc gọi ajax là như thế này:
var ajaxOptions = {
url: '/newpage',
data: JSON.stringify(dataToSend),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
cache: false,
processData: false,
type: 'POST',
success: function(res) {
console.log("success!");
$('#' + divname).html(res);
},
error: function(res) {
console.log("There was an error: " + JSON.stringify(res));
$('#' + divname).html(res.responseText);
}
};
$.ajax(ajaxOptions);
Các thông báo lỗi là: Có một lỗi: {"readyState":4,"responseText" [this part is perfectly fine], "status":200, "statusText":"OK"}
.
'dataType: 'json',' đây là phản hồi mong đợi từ nguồn. bạn có thể chắc chắn rằng nguồn bạn đang nhấn đang tạo ra json như là kết quả không? nếu không thử sau khi gỡ bỏ nó. – Jai
có vẻ như bạn đang trả lại văn bản/html .... do đó, lỗi có thể là lỗi phân tích cú pháp json. Loại bỏ 'dataType: 'json''. Hiển thị những gì thực sự được trả về – charlietfl
@ Jai - Đó là một dự đoán tốt! Tôi đã thay đổi kiểu thành dữ liệu JSON trong cơ sở dữ liệu của mình, nhưng tôi vẫn gặp lỗi tương tự. – lynvie