8

我正在尝试使用 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);
    });

这可能吗?提前致谢

4

2 回答 2

3

同样在这里。不幸的是,jsonp 函数在转换回调之前解析内容。所以不,这是不可能的。

您只能将响应更改为 JSON 或使用其他方法。(嗯,你也可以在你的服务器上包装真实的 API 并以 JSON 格式生成相同的结果,构建一个镜像 API 服务)

祝你今天过得愉快,

于 2014-06-26T07:51:27.473 回答
1

如果无法访问您正在使用的相同服务,则很难查明问题。您使用的是公共 API 吗?

我能够使用$http.get. 看看这个笨蛋

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;
  });
});
于 2013-08-14T19:17:35.480 回答