jQuery.ajax对Twitter的调用成功但对Firefox返回null

前端之家收集整理的这篇文章主要介绍了jQuery.ajax对Twitter的调用成功但对Firefox返回null前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有代码使用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获取数据.有什么我需要启用允许这个吗?

解决方法

您正在尝试进行跨域Ajax调用.为此,您需要使用JSONP.

JQuery了解JSONP,它将为您处理所有底层技巧.

你只需要添加参数& callback =?到您的URL和JQuery将请求作为跨域调用.更重要的是,它将理解并处理来自服务器的JSONP响应,因此对您来说它将是透明的.

原文链接:https://www.f2er.com/jquery/178108.html

猜你在找的jQuery相关文章