我正在尝试使用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的话)?
答案 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