JSON回来时出现语法错误? (IMGUR API)

时间:2012-08-12 23:45:13

标签: jquery ajax json jsonp imgur

ETA:这是JSFiddle,请检查您的控制台:http://jsfiddle.net/GZNwK/1/

所以我只是尝试从IMGUR API加载subreddit:

$.getJSON('http://imgur.com/r/cats.json?callback=?',function(data){
    console.log(data)
})

但我最终得到了这个错误:

enter image description here

不完全确定为什么会这样。我可以用.jsom格式加载Flickr API和Instagram API,语法出现完全相同。为什么IMGUR API会给我一个错误?另外,如果我删除?callback =?然后它不使用JSONP并且跨域请求失败。

1 个答案:

答案 0 :(得分:3)

因为这不是支持JSONP请求的资源。我对IMGUR了解不多,但看起来他们确实有一个可以使用的API:http://api.imgur.com/

另一种解决方案是使用YQL

$.ajax({
    url: 'http://query.yahooapis.com/v1/public/yql',
    data: {
        q: 'select * from json where url="http://imgur.com/r/cats.json"',
        format: 'json'
    },
    type: 'get',
    dataType: 'jsonp'
}).success(function (data) {
    /* results are in data.query.results.json.gallery */
    alert(data.query.results.json.gallery[0].title);
});

示例: http://jsfiddle.net/sNSEA/

虽然我强烈建议如果可能的话,通过API“正确”地做这件事(快速浏览并没有产生任何结果)。