Zha*_*ami 8 twitter firefox jquery
我有代码使用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, status, error);
}
});
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
HTTP状态为OK(200),Content-Type正确application/json
,Content-Length为2126(gzip'd)意味着数据返回.然而,Firebug将响应显示为空,并且对提供的数据的测试显示它为"空".
我知道Stack Overflow上的类似帖子,jQuery $ .get()函数成功用200但在Firefox中没有返回任何内容,从而假设这个问题可能与跨域安全有关,但是......我知道那里有许多JavaScript小部件,以及Ajax从Twitter获取数据的内容.有什么我需要启用允许这个吗?
您正在尝试进行跨域 Ajax 调用。为此,您需要使用 JSONP。
JQuery 理解 JSONP,它将为您处理所有底层技巧。
只需要添加参数&callback=? 添加到您的 URL,JQuery 会将请求作为跨域调用。更重要的是,它会理解并处理来自服务器的 JSONP 响应,因此对您来说它将是透明的。
归档时间: |
|
查看次数: |
3817 次 |
最近记录: |