在angularjs中获取“意外的令牌:”但不能使用回调

时间:2013-05-22 17:39:15

标签: json angularjs jsonp spotify

我正在尝试使用AngularJS查询Spotify Metadata API,但我一直遇到以下错误。

Uncaught SyntaxError: Unexpected token : 

现在我通常知道在查询时你应该添加callback=JSON_CALLBACK作为查询字符串,但在这种情况下它不起作用。它返回:

Failed to load resource: the server responded with a status of 400 (Bad Request)

我正在使用$http.jsonp()

Example without callback | Example with callback

那么,有没有办法解决这个问题,使用纯Javascript或者我最好添加一个服务器端包装器(我已经开始工作但是如果它是纯Javascript的话)?

1 个答案:

答案 0 :(得分:4)

似乎Spotify不提供jsonp支持,但它们确实支持CORS - 所以这应该有效:

function spotify_api($http) {
    var url = "http://ws.spotify.com/lookup/1/.json?uri=spotify:track:5PJSqY8jbYzr4a6dl5Ory1";
    //CORS support
    delete $http.defaults.headers.common['X-Requested-With'];

    $http.get(url).success(function(data) {
        console.log(data);
    });
}

请参阅我的更新:http://jsfiddle.net/69kYH/

坏消息是,使用旧版本的IE,CORS似乎无法正常工作 - 请参阅AngularJS - Calling Flickr API fails with warning message