我已经阅读了大约20个关于这个具体问题的问题,但是无法让它们中的任何一个起作用。
我正在创建一个简单的jquery函数来查询iTunes api以获取歌曲数据。
我似乎无法获取ajax函数之外的数据。我尝试使用回调和异步错误,但似乎没有任何效果。
这是我的代码:
function itunesData(artist,song) {
/* https://itunes.apple.com/search?term=jack+johnson+I+Got+You&entity=song */
$.ajax({
type: 'GET',
url: 'https://itunes.apple.com/search',
data: { term: artist+' '+song, entity: 'song' },
dataType: 'jsonp',
cache: true,
statusCode: {
404: function() {
alert('are you online?')
},
},
success: function( resp ) {
if (resp.resultCount == 0) {
return false;
}
if (resp.results[0]) {
songDetails = resp.results[0];
songArt = songDetails.artworkUrl30;
songPreview = songDetails.previewUrl;
songUrl = songDetails.trackViewUrl;
return itunesData = new Array( songArt, songPreview, songUrl );
}
},
});
}
最后我只需要:
var songData = itunesData('Jack Johnson', 'I Got You');
你能告诉我我做错了什么吗?
10倍
答案 0 :(得分:1)
你做的AJAX调用是异步的;因此,您需要实现一个与itunesData()分开的回调函数来处理响应。