从tinysong获取歌曲

时间:2012-08-05 23:30:12

标签: javascript jquery json grooveshark

我不想通过tinysong API获取歌曲列表,它从Grooveshark抓取它我通过$.ajax进行,到目前为止我得到了这个:

$.ajax({
    url : 'http://tinysong.com/s/Beethoven?format=json&key='+key,
    type : 'get',
    dataType : 'jsonp',
    succes : function(response){
        console.log(response);
        $('.content').append(response);
    },
    error: function(error){
        console.warn('ERROR');
        console.warn(error);
    }
});

key这是他们指定给我的API密钥。我收到以下错误:

  

资源被解释为脚本但以MIME类型text / html传输:“http://tinysong.com/s/Beethoven?format=json&key=HERE_IS_MY_KEY&callback=jQuery172021696692402474582_1344209008518&_=1344209008523”。

但是,如果我去那个网址,我会得到如下打印结果:

  

[{“Url”:“http://tinysong.com/Aoxo”,“SongID”:25802452,“SongName”:“A大调第7交响曲,Op.92:Allegretto”,“ArtistID” :1833年,“ArtistName”:“Beethoven”,“AlbumID”:4497124,“AlbumName”:“Beethoven:9 Symphonien,Ouvert \ u00fcren(1 of 6),Berstein,Leonard”},{“Url”:“http: //tinysong.com/jh4X","SongID":2909282,"SongName"::钢琴协奏曲第5号E大调第73号'皇帝',“ArtistID”:1833年,“ArtistName”:“贝多芬” ,“AlbumID”:268605,“AlbumName”:“Best of Beethoven”},{“Url”:“http://tinysong.com/JhLy”,“SongID”:31825464,“SongName”:“贝多芬:钢琴奏鸣曲#23在F小调,Op.57,\“Appassionata \”“,”ArtistID“:1833,”ArtistName“:”Beethoven“,”AlbumID“:4913792,”AlbumName“:”Beethoven's Greatest Hits“},{ “Url”:“http://tinysong.com/6Jk1”,“SongID”:4925300,“SongName”:“Beethoven#4:Adagio”,“ArtistID”:1833,“ArtistName”:“Beethoven”,“AlbumID” “:842118,”AlbumName“:”Beethoven:Symphonies Nos.7& 4“},{”Url“:”http://tinysong.com/gGW0“,”SongID“:11896153,”SongName“:”F \ u00fcr Elise“,”ArtistID“:1833,”ArtistN ame“:”Beethoven“,”AlbumID“:2087629,”AlbumName“:”Beethoven and the Sea“}]

如何将此信息传递给我的javascript?

1 个答案:

答案 0 :(得分:4)

您获得的“错误”只是一个警告。 Tinysong使用错误的内容类型(“text / html”)传输JSON响应。您可以使用curl验证这一点,例如:

curl --head http://tinysong.com/s/Beethoven\?format\=json\&key\=<your key>

可以在answer中找到解释您的脚本无法正常工作以及问题解决方案的原因(请阅读评论)。

也许您应该联系Tinysong,报告有关内容类型的错误并要求JSONP支持。