在angularjs中获取`Unexpected token :`但不能使用回调

Posted

技术标签:

【中文标题】在angularjs中获取`Unexpected token :`但不能使用回调【英文标题】:Getting `Unexpected token :` in angularjs but cannot use callback 【发布时间】:2013-05-17 21:19:40 【问题描述】:

我正在尝试使用 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】:

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/

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

【讨论】:

以上是关于在angularjs中获取`Unexpected token :`但不能使用回调的主要内容,如果未能解决你的问题,请参考以下文章

angular.min.js:1 Uncaught SyntaxError: Unexpected token <

获取 MongoDB 错误 - SyntaxError: Unexpected token?

如何使用 unicode 从 python 服务解析 JSON? SyntaxError: Unexpected token u

AngularJS + JQuery:如何在 angularjs 中获取动态内容

获取错误:-S SyntaxError: Unexpected token < in JSON at position 0 REACT

如何使用angularjs在html中获取textarea行数?