在Twitter API调用中获取“数据为空”,但在浏览器中显示数据

时间:2012-01-24 09:33:36

标签: javascript jquery json twitter

我正在尝试显示推特账号的跟随计数,但是当我使用此代码挂钩API时:

$.getJSON("https://api.twitter.com/1/users/show.json?screen_name=uswitchTech&include_entities=true", function(data) {
    console.log(data);
    if (!data.error) {
        $("#followers").html(data.followers_count);
    }
});

我收到200个确定报告,但数据为空消息。

但是,如果我将json文件下载到本地计算机并相应地更改getJSON调用,它会立即生效。

有没有人对可能导致这种情况的原因有任何想法?

由于

另外,如果我将Twitter API网址放入浏览器,它会显示所有数据,这使得它更加怪异。

2 个答案:

答案 0 :(得分:2)

问题可能在于jsonP,因为你正在调用一个远程服务器,你必须指定你应该使用jsonP。您是否尝试将callback=?添加为参数

$.getJSON("https://api.twitter.com/1/users/show.json?screen_name=uswitchTech&include_entities=true&callback=?", function(data) {
    if (!data.error) {
        $("#followers").html(data.followers_count);
    }
});

取自jQuery docs

  

JSONP
  如果URL包含字符串“callback =?” (或类似的,如   由服务器端API定义),请求被视为JSONP   代替。请参阅$ .ajax()中有关jsonp数据类型的讨论   更多细节。

答案 1 :(得分:0)

$.ajax({
    url: 'https://api.twitter.com/1/users/show.json?screen_name=uswitchTech&include_entities=true',
    dataType: 'jsonp',
    success: function(data){
        console.log(data.followers_count);
    }
});