【问题标题】:Getting 'data is null' on a Twitter API call but displays data in browser在 Twitter API 调用中获取“数据为空”,但在浏览器中显示数据
【发布时间】:2012-02-17 13:33:12
【问题描述】:

我正在尝试显示 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 ok 的报告,但有 Data is null 消息。

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

有没有人知道是什么原因造成的?

谢谢

另外补充一点,如果我将 Twitter API url 放入我的浏览器,它会显示所有数据,这使得它更加奇怪。

【问题讨论】:

    标签: javascript jquery json twitter


    【解决方案1】:

    也许问题在于 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 文档

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

    【讨论】:

    • 哇,谢谢您的回复。这马上就奏效了,几个小时以来一直把我的头发扯下来!大声笑
    【解决方案2】:
    $.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);
        }
    });
    

    【讨论】:

      猜你喜欢
      • 2021-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-22
      • 2021-08-28
      • 2017-08-02
      • 2020-10-20
      • 2011-09-03
      相关资源
      最近更新 更多