Mã của tôi là:Làm cách nào để gỡ lỗi yêu cầu jQuery Ajax?
var test = "it isn't working";
var response = $.ajax({
type: 'GET',
url: 'jquerydemo.php', //This is in the same site as the page calling this request, so it's not a same-domain error.
success: function(){
test = "it's working";
},
error: function(){
alert("Error detected");
}
}).responseText;
alert(test);
Tôi đã thử nghiệm mã trạng thái và nó xuất hiện để 200 và hàm lỗi không bao giờ đi tắt, nhưng cũng như thế với chức năng thành công. Như tôi đã nói trong bình luận của tôi, nó không phải là lỗi chính sách gốc. Nó chỉ nói rằng "nó không hoạt động". Những gì đang xảy ra ở đây?
Bạn cũng có tùy chọn thêm 'async: true' để các thiết lập bạn vượt qua trong 'ajax' cuộc gọi của bạn, nhưng hãy nhớ rằng điều này sẽ ngăn chặn rằng toàn bộ sợi thực hiện trong tập lệnh của bạn cho đến khi yêu cầu đã được trả lại. – dfreeman
@SchiefGelaufen - Tôi cho rằng bạn có nghĩa là 'không đồng bộ: sai'. Biến cuộc gọi ajax thành một cuộc gọi đồng bộ thực sự là một lựa chọn, nhưng vì nó khóa toàn bộ trang web trong suốt thời gian gọi ajax, nó hiếm khi là sự lựa chọn thiết kế tốt nhất. Mã phức tạp hơn với 'async: true', nhưng mang lại trải nghiệm người dùng tốt hơn. – jfriend00
Rất tiếc, lỗi lầm ngớ ngẩn của tôi. Có, 'không đồng bộ: sai'. Không nhất thiết phải thực hiện yêu cầu ajax đồng bộ sẽ khóa toàn bộ trang (ít nhất, có một số trường hợp mà nó không có), nhưng chắc chắn được coi là thực hành tốt hơn để đặt bất kỳ logic nào dựa vào phản hồi trong thành công của bạn gọi lại. – dfreeman