AngularJS:AJAX返回是一个String而不是Object

时间:2015-05-24 12:32:26

标签: javascript ajax angularjs node.js

我有一个node.js服务器。该服务器有一个小API。我用AngularJS构建了一个App,我的问题是,如果我对服务器进行ajax调用,我会得到一个字符串,而不是一个对象。

服务器API:

exports.api = function(req, res, next) {

  var path = req.body.path
  var method = req.body.method

  digest.request({
    host: 'xxx',
    path: path,
    port: 80,
    method: method,
    headers: { "User-Agent": "Bridge" }
  }, function (resX) {
    resX.on('data', function (data) {
      res.status(200).end(data)
    })
    resX.on('error', function (err) {
      res.status(200).end(err)
    })
  })
}

呼叫:

.controller('TestCtrl', function($scope, $http) {
  $http({
    url: 'http://localhost:8000/api',
    method: 'POST',
    data: {'method': 'GET', 'path': '/api'}
  }).success(function(data, status, headers, config) {
      console.log(data);
  }).error(function(data, status, headers, config) {
      console.log(data);
  })
})

我希望有人可以帮助我因为我绝望。

1 个答案:

答案 0 :(得分:1)

我建议根据您的数据向请求添加内容类型(让函数知道预期会发生什么)。

此外,您可以尝试使用JSON实用程序将数据转换为对象。 E.g:

http://www.quora.com/How-can-I-convert-JSON-format-string-into-a-real-object-in-JS

取决于你实际得到的回报。