无法从jQuery获取twitter状态更新

时间:2010-06-12 10:35:08

标签: jquery json twitter

为什么下面的代码显示'得到结果为空'警告框?而请求似乎正在发送一个合适的json。

 $(function(){
       $.getJSON('http://api.twitter.com/1/statuses/user_timeline.json?screen_name=twitterusername', function(data) {
        alert('got the result '+data);
        });
       });

1 个答案:

答案 0 :(得分:0)

由于跨域安全策略。

 $(function(){ 
       $.getJSON('http://api.twitter.com/1/statuses/user_timeline.json?screen_name=twitterusername&callback=?', function(data) { 
        alert('got the result '+data); 
        }); 
       }); 

http://www.jsfiddle.net/yewVa/

请注意向网址添加callback=?。请注意,服务器必须支持JSONP响应才能生效。

有关这两方面的详细信息,请参阅http://api.jquery.com/jQuery.getJson/

JSONP要求您从中提取数据的网站,以了解JSONP,而不是它正在运行的网站。 JSONP的工作原理是将<script>标记注入到您的文档中,并将src设置为远程文档。

JSONP依赖于远程文档包装它在回调中指定的函数名称中的响应(jQuery掩盖了这一点,这就是为什么你只看到一个“?”作为回调参数。在jQuery完成摆弄之后, URL最终为http://somewhere.com/?someparam=4&callback=foo。远程服务器响应表示为foo({ someparam:4} ),在加载到<script>标记时将其解析为JavaScript。

请注意,由于这种方法,处理错误的可能性很小。

相关问题