需要从apache.org获取构建值。所以我正在使用他们的api 的 https://builds.apache.org/api/json
我尝试了angularjs $ http.jsonp,但无法获取数据。 在网络下的chrome控制台中,json api正在加载,但数据没有返回,而是将响应作为错误抛出。
app.controller("jsoncontroller",function($scope,$http){
var url='https://builds.apache.org/api/json';
$http.jsonp(url).success(function(data){
console.log('success');
})
.error(function () {
console.log('error')
});
});
将错误视为
Uncaught SyntaxError: Unexpected token :
error
答案 0 :(得分:3)
根据jsonp angular docs,您必须将JSON_CALLBACK
附加到网址:https://builds.apache.org/api/json?jsonp=JSON_CALLBACK
但是,该URL不起作用,因为即使指定了回调参数,服务器仍然会发回内容类型的application / json,而不是预期的application / javascript。这导致它被json解析器(显然)解析,而不是JSONP工作所需的javascript回调。我在JSONP或Angular中不够精通,不知道这是谁的错。
我已经使用其他网址制作了fiddle。
[更新]:apache构建服务器似乎使用Jenkins,它有来自远程API的disable JSONP。你可以尝试点击他们的jsonp endpoint来验证这一点,{{3}}返回403.你将不得不使用另一个端点,我无法看到它。