【发布时间】:2014-04-23 01:50:08
【问题描述】:
我正在尝试使用 IUCN Red List Web 服务 API (here's an example output)。不幸的是,除了这个one-off Gist 之外,我找不到任何文档。看起来 API 正在构建一个 HTML 文档,而不是返回一个数据对象,这不是我过去经历过的。我还注意到,在示例中,URL 中没有提到 ?callback=JSON_CALLBACK,这是我在处理 JSONP 时所期望的。
我在 AngularJS 中构造了一个 http 请求,如下所示:
atRiskApp.controller('IucnController', ['$scope', '$routeParams', '$http', function ($scope, $routeParams, $http) {
$scope.iucn = $routeParams.iucn; // pulling a number from the URL: ex. 22718591
$scope.getIUCN = function () {
var iucnUrl = 'http://api.iucnredlist.org/details/' + $scope.iucn + '/0.js';
$http.jsonp( url )
.success( function (response) {
console.log(response);
})
.error( function (response) {
console.log(response);
});
};
}]);
虽然 HTML 文档已成功传递到我的应用程序,但我收到以下错误消息:
Uncaught SyntaxError: Unexpected token <
似乎该应用程序期望获取 Javascript,而是获取了一个显然无法解析的 HTML 文档。我尝试将config 对象添加到请求based on the angular docs: $http.jsonp( {url: iucnUrl, responseType: 'text'} ) 没有任何运气。
我的问题是,我该如何处理返回的 HTML 文档,还是我在这里偏离了轨道?
来自 API 的响应是一个带有 javascript 扩展名的 HTML 文档:
【问题讨论】: