我正在尝试使用AngularJs连接到answerbase api。我得到它使用jsonp返回xml但我得到格式错误。不幸的是,xml是他们将返回的唯一格式。我试图使用xml2json库但没有成功。 这是我到目前为止所做的。
var url = "http://myAnswerBaseSite.com/api/getquestionslist.aspx?apikey=myKey&callback=JSON_CALLBACK";
$http.jsonp(url,
{
transformResponse: function (data) {
var x2js = new X2JS();
var json = x2js.xml_str2json(data);
return json;
}
})
.success(function (data) {
console.log(data.found);
});
这可能吗? 提前致谢
答案 0 :(得分:3)
同样在这里。不幸的是,jsonp函数在转换回调之前解析内容。所以不,这是不可能的。
您只能将响应更改为JSON或使用其他方法。 (好吧,你也可以在你的服务器上包装真正的API并以JSON格式生成相同的结果,构建镜像API服务)
度过愉快的一天,
答案 1 :(得分:1)
如果无法访问您正在使用的相同服务,则很难确定问题所在。您使用的是公共API吗?
我能够使用$http.get
获得基本演示。看看this plunker。
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope, $http) {
$scope.name = 'World';
var url = "data.xml";
$http.get(url,{
transformResponse: function (data) {
var x2js = new X2JS();
var json = x2js.xml_str2json(data);
return json;
}
}).success(function (data) {
$scope.foo = data.foo;
});
});