从bandcamp api获取一个json

时间:2011-05-28 09:57:46

标签: jquery ajax json

抱歉,如果早些时候被问过,我试图找到但是通过 开始:http://bandcamp.com/developer

我正在尝试获取艺术家的bandID

var my_url = 'http://api.bandcamp.com/api/band/3/search?key=snaefellsjokull&name=metallica';

$.ajax({
                'url' : my_url,
                'type':"GET",
                success: function(res){
                    var bandId = res.result[0].bandId;
                    console.log(bandId);
                }
});

但我总是得到405错误,不允许使用此方法。

我也试过这些:

$.getJSON(my_url, function(res){
                    var bandId = res.result[0].bandId;
                    findDisco(bandId);
                })

 var abc= $.parsejson(my_url);
 abc.res.result[0].bandId;

如果你在导航栏中执行url,它会获取json ..并且我用json lint验证它。我想我正在做一个非常愚蠢的错误..有人可以帮忙吗?

提前感谢!!

1 个答案:

答案 0 :(得分:0)

首先,您需要使用JSONP(因为您从其他域中获取,正如我在评论中所述),这是受支持的:

  

参数。有三个参数适用于每个函数调用:

     

密钥 - 每次通话都必须包含您的开发人员密钥       debug - 可选参数,指示API以更易读的格式返回JSON blob的文本,包括空格和换行符。
     回调 - 如果包含此参数,则响应将使用具有指定回调函数名称的JSONP格式。

其次,您需要访问正确的字段。例如。它是res.results而不是res.resultband_id而不是bandId

  

<强>响应

     

对于单个band id,响应是具有以下项目的哈希。对于批处理模式,响应是将请求的带ID映射到其信息块的哈希映射。

     

band_id - 乐队的数字ID      名称 - 乐队的名字。这可能并不是唯一的,特别是如果乐队对他们的名字感到害羞      子域名 - 乐队的子域名。这在所有乐队中都是独一无二的       url - 乐队的主页。
      offsite _url - 乐队的备用主页,而不是Bandcamp。

全部来自documentation you linked to

这有效:

var my_url = 'http://api.bandcamp.com/api/band/3/search?key=snaefellsjokull&name=metallica&callback=?';

$.ajax({
    'url': my_url,
    'type': "GET",
    'dataType': 'jsonp',
    success: function(res) {
        var bandId = res.results[0].band_id;
        console.log(bandId);
    }
});