我试图从第三方服务(Comic Vine)获取数据,但我的应用程序仅限Javascript,所以我不得不求助于JSONP。 当我收到服务器的回复时,Angular会发出一个错误,就像它无法正确解释收到的响应一样:
Uncaught SyntaxError: Unexpected token :
我不是JSONP的专家,但是从我收集的内容来看,这可能是由于一个非常常见的错误,即JSONP响应应该由Javascript函数组成,而不是像这种情况那样的对象。这是我得到的响应的一个例子(只有第一行):
{"error":"OK","limit":100,"offset":0,"number_of_page_results":100,"number_of_total_results":2487,"status_code":1,"results":[{"aliases":null,"api_detail_url":"http:\/\/www.comicvine.com\/api\/issue\/4000-313848\/","cover_date":"2005-10-
这是我配置$ resource服务的代码的一部分:
angular.module('comicVineServices', ['ngResource'])
.factory('Issue', ['$resource', function($resource){
return $resource(
{
api_key:'03f2238446ecacab80ae361aa064014a7e416688',
query: 'green',
resources:'issue',
format: 'json',
callback: "JSON_CALLBACK"
},
{
query: {
method: 'JSONP',
responseType: 'json',
isArray: false,
}
}
);
}]);
我尝试自己解析回复,或者至少看看我是否可以在使用transformResponse
和interceptor
进行解析之前拦截它,但到目前为止还没有成功。< / p>
你们认为错误的反应可能是问题(它应该是一个功能的对象)吗? 你们觉得我能做些什么工作吗?