我只是尝试使用angularjs http对iTunes搜索API进行基本调用。
$http.jsonp("http://itunes.apple.com/search", {params:{"term":"jack+johnson"}})
.success(function (data, status, headers, config) {
console.log("is scope : " + data);
}).error(function (data, status, headers, config) {
console.log("error" + status);
});
请求做得好(状态:200),我可以看到检索了JSON,这是摘录:
{
"resultCount":50,
"results": [
{"wrapperType":"track", "kind":"song", "artistId":909253, "collectionId":120954021, "trackId":120954025, "artistName":"Jack Johnson", "collectionName":"Sing-a-Longs and Lullabies for the Film Curious George", "trackName":"Upside Down", "collectionCensoredName":"Sing-a- Longs and Lullabies for the Film Curious George", "trackCensoredName":"Upside Down", "artistViewUrl":"https://itunes.apple.com/us/artist/jack-johnson/id909253?uo=4", "collectionViewUrl":"https://itunes.apple.com/us/album/upside-down/id120954021? i=120954025&uo=4", "trackViewUrl":"https://itunes.apple.com/us/album/upside-down/id120954021? i=120954025&uo=4", ....
但我有一个JS错误:" unduarking syntaxerror:意外的令牌:"在JSON结果的第一行(" resultCount":50)。
我尝试使用变换响应,但发生了错误。
谢谢
您忘了添加回调函数(JSON_CALLBACK
):
app.controller('Ctrl', function($scope, $http) {
$http.jsonp("http://itunes.apple.com/search", {
params: {
"callback": "JSON_CALLBACK",
"term": "jack+johnson"
}
}).success(function(data, status, headers, config) {
console.log("is scope : " + data);
}).error(function(data, status, headers, config) {
console.log("error" + data);
});
});
来自Angularjs $ http.jsonp文档:
url - {string} - 指定目标的相对或绝对URL 请求。应包含JSON_CALLBACK字符串。