Tôi đang sử dụng jQuery 1.4.2 và đang cố gắng thực hiện một yêu cầu AJAX đơn giản. URL mục tiêu trả về một chuỗi JSON (Tôi đã xác thực nó bằng jslint). Yêu cầu hoạt động trong Firefox và Chrome, nhưng không muốn làm việc trong IE8 và tôi không thể xác định lý do. Đây là cuộc gọi:Yêu cầu jQuery AJAX không thành công trong IE8 với thông báo 'Lỗi: Phương thức này không thể được gọi cho đến khi phương thức mở được gọi.'
jQuery.ajax({
url: 'http://' + domain + '/' + 'helper/echo/',
dataType: 'json',
success: function(data) {
alert(data);
},
beforeSend: function(request, settings) {
alert('Beginning ' + settings.dataType + ' request: ' + settings.url);
},
complete: function(request, status) {
alert('Request complete: ' + status);
},
error: function(request, status, error) {
alert(error);
}
});
IE sẽ thực thi lệnh gọi lại trước và lỗi gọi lại. Thông báo lỗi gọi lại bằng tin nhắn:
Error: This method cannot be called until the open method has been called.
Tiêu đề phản hồi của tôi trả về với Content-Type: text/javascript; charset=UTF-8
.
Điều gì đang xảy ra với IE? Tôi đang chạy máy chủ trên máy chủ cục bộ, yêu cầu từ http://localhost:8080/psx đến http://localhost:8080/helper. Có thể IE đang chặn yêu cầu này? Tôi đã thử cài đặt Fiddler để phân tích lưu lượng truy vấn yêu cầu nhưng nó sẽ không chạy trên máy của tôi vì nó bị khóa. Firebug cho phép tôi, nhưng mọi thứ có vẻ tốt ở đó.
Cảm ơn bạn đã trợ giúp !!!
Thử đặt 'async: false' và thử lại. –
Điều đó không có tác dụng, thật không may. Tôi cũng nên đề cập đến tình trạng gọi lại lỗi là null. – checker