1

私はangularjshttpを使用して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",  ....

しかし、jsonの結果( "resultCount":50)の最初の行にjsエラー: "Uncaught SyntaxError:Unexpected token:"があります。

transformResponseを使用しようとしましたが、以前にエラーが発生しました。

ありがとう

4

1 に答える 1

2

コールバック関数 ( ) を追加するのを忘れました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 文字列を含める必要があります。

于 2012-12-19T15:57:05.843 に答える