我有代码,使用jQuery的Ajax方法,使Twitter(搜索)的简单的获取请求。该代码在Safari上运行良好,但在Firefox(3.6.3)上失败。在Firefox的情况下,我的jQuery.ajax
参数'成功'方法被调用,但提供的数据为空。 (在Safari中,我收到了很多的JSON数据)jQuery.ajax调用Twitter的成功,但火狐返回null
我的Ajax调用是:
$.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的显示响应头:
Date 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
的HTTP状态正常(200),内容类型正确application/json
,内容长度2126(gzip'd)意味着数据回来。然而,Firebug显示响应为空,并且对提供的数据的测试显示它为“空”。
我知道堆栈溢出类似的帖子,jQuery $.get() function succeeds with 200 but returns no content in Firefox,并从该会认为这个问题可能与跨域安全,但......我知道有很多的JavaScript小部件和诸如此类的东西阿贾克斯获得来自Twitter的数据。有什么我需要启用以允许这?
啊,跨域安全政策肯定是个问题。已添加“&callback =?”到GET请求,现在所有的工作。 – Zhami 2010-04-12 13:24:43
你可以更新你原来的帖子w /回调选项添加? - 谢谢! – 2011-05-24 18:25:27
@Zhami:如果你回答了这个问题,你应该在这里发布你的答案。 – 2011-09-07 21:54:55