4

我正在尝试从 reddit 获取某个 URL 的分数。要添加“与 reddit 共享(计数)”链接:

function redditCounter(url) {
  // Get number of counts from reddit JSON api
  // $.getJSON('http://www.reddit.com/api/info.json?url='+url+'',
  $.getJSON('http://www.reddit.com/api/info.json?url=http://stackoverflow.com/q/811074/1288',
    function(data) {
      count = 0;
      if (data.children.count() > 0) {
        first_child = data.children[0];
        alert(first_child.score);
      }
    });
}

当您使用 curl 或浏览器调用 url 时,结果就像Reddits API 文档中所述。有一个 children 数组,其中包含一个带有数字的分数。

然而$.getJSON,返回一个空答案,当在萤火虫中跨过它时可以看到。

这可能是reddit的一种保护方法吗?还是我使用 getJSON 错误?

4

1 回答 1

5

我很确定您实际上应该期待 JSONP 响应,在这种情况下,我相当肯定您应该附加&callback=?到您的 URL。

编辑:对于将来偶然发现此问题的任何人,请注意:getJSON()如果遇到格式错误的 JSON 对象,或者在本例中,从另一个域接收 JSON 对象而没有 JSONP 填充,jQuery 将静默失败。然而,一些浏览器(例如:谷歌浏览器)可能会抛出一个 MIME 类型警告,它可以很好地指示您获得的 JSON 对象有问题。

于 2011-12-30T20:42:26.697 回答