我有代码使用jQuery的Ajax方法向Twitter(搜索)发出一个简单的get请求.代码在Safari上运行良好,但在Firefox(3.6.3)上失败.在Firefox的情况下,我调用了jQuery.ajax参数’success’方法,但提供的数据为null. (在Safari中,我收到了很多
JSON数据.)
我的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,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状态是OK(200),Content-Type是正确的application / json,Content-Length是2126(gzip’d)意味着数据回来了.然而,Firebug显示响应为空,并且对提供的数据的测试显示它为“空”.
我知道Stack Overflow上有一篇类似的文章,jQuery $.get() function succeeds with 200 but returns no content in Firefox并且从中可以看出这个问题可能与跨域安全性有关,但是……我知道有很多JavaScript小部件,以及Ajax从Twitter获取数据.有什么我需要启用允许这个吗?