Tôi đã nhận được mã yêu cầu nhận đơn giản tới Twitter (tìm kiếm) bằng cách sử dụng phương thức Ajax của jQuery. Mã hoạt động tốt trên Safari, nhưng không thành công trên Firefox (3.6.3). Trong trường hợp Firefox, phương thức "thành công" của phương thức jQuery.ajax
được gọi, nhưng dữ liệu được cung cấp là null. (. Trong Safari, tôi nhận được rất nhiều dữ liệu JSON)jQuery.ajax gọi tới Twitter thành công nhưng trả về giá trị rỗng cho Firefox
cuộc gọi Ajax của tôi là:
$.ajax({
url: 'http://search.twitter.com/search.json?q='+searchTerm,
dataType: 'json',
async: true,
beforeSend: function(request) {
window.console.log('starting AJAX request to get Twitter data');
},
success: function(data, textStatus, request) {
window.console.log('AJAX request to get Twitter succeeded: status=' + textStatus);
callback(data);
},
error: function(request, status, error) {
window.console.log('Ajax request to get user data --> Error: ' + status);
errback(request, status, error);
}
});
Firebug cho thấy tiêu đề đáp ứng:
tình trạngDate Sun, 11 Apr 2010 22:30:26 GMT
Server hi
Status 200 OK
X-Served-From b021
X-Runtime 0.23841
Content-Type application/json; charset=utf-8
X-Served-By sjc1o024.prod.twitter.com
X-Timeline-Cache-Hit Miss
Cache-Control max-age=15, must-revalidate, max-age=300
Expires Sun, 11 Apr 2010 22:35:26 GMT
Vary Accept-Encoding
X-Varnish 1827846877
Age 0
Via 1.1 varnish
X-Cache-Svr sjc1o024.prod.twitter.com
X-Cache MISS
Content-Encoding gzip
Content-Length 2126
Connection close
Các HTTP là OK (200), Loại nội dung là đúng application/json
và Nội dung dài 2126 (gzip'd) ngụ ý dữ liệu đã trở lại. Tuy nhiên, Firebug hiển thị Phản hồi bị trống và kiểm tra dữ liệu được cung cấp cho thấy nó là 'null'.
Tôi biết một bài đăng tương tự trên Stack Overflow, jQuery $.get() function succeeds with 200 but returns no content in Firefox và từ đó giả định vấn đề này có thể liên quan đến bảo mật tên miền chéo, nhưng ... Tôi biết có nhiều tiện ích JavaScript và Ajax dữ liệu từ Twitter. Có cái gì tôi cần phải kích hoạt để cho phép điều này?
Ah, chắc chắn là một vấn đề với chính sách bảo mật tên miền chéo. Đã thêm "& callback =?" với yêu cầu GET và tất cả hiện đang hoạt động. – Zhami
Bạn có thể cập nhật bài đăng gốc của mình bằng cách thêm tùy chọn gọi lại không? - Cảm ơn! –
@Zhami: Nếu bạn trả lời, bạn nên đăng giải pháp của mình dưới dạng Trả lời ở đây. –