使用jquery getjson在reddit上获取URL的分数

Get score for an url on Reddit, using jQuery getJSON

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

1
2
3
4
5
6
7
8
9
10
11
12
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时,结果与RedditsAPI文档中描述的结果类似。有一个子数组,其中包含一个带数字的分数。

然而,$.getJSON返回一个空答案,在Firebug中跳过它时可以看到。

这可能是Reddit的保护方法吗?或者我使用getjson是错误的?


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

编辑:对于以后遇到这个问题的人来说,这只是一个提示:如果jquery的getJSON()遇到一个格式错误的json对象,或者像在本例中一样,从另一个没有jsonp填充的域接收一个json对象,它将自动失败。但是,一些浏览器(如Google Chrome)可能会发出一个mime类型的警告,它可以很好地指示JSON对象有问题。