Angularjs $ http.get将JSON数据作为带有转义引号而不是json的字符串返回

时间:2014-04-24 00:32:55

标签: javascript json angularjs

这里有趣的问题。我有一个返回JSON的restful后端。当我通过浏览器访问api时,它返回一个带有json对象的经过验证的json数组。

  

[{ “GUID_Auth”:NULL, “EMAIL_ADDRESS”: “ABC @美国在线,” Measure_Id “:1,” 标题 “:” 支柱   41" }]

但是当我通过angularjs发出$ http.get请求时,我会找回带有转义引号的字符串

  

获得成功:“[{\”GUID_Auth \“:null,\”Email_Address \“:\”abc @ aol \“,\”Measure_Id \“:1,\”Title \“:\”Prop   41 \ “}]”

这是我的angularjs控制器代码的片段

.controller('MainCtrl', function($scope,$http) {
  $scope.GetData = function(){
    var responsePromise = $http.get('http://backend.api');
    responsePromise.success(function(data,status,headers,config){
      console.log('got success: ' + data);
      console.log('test'+ data[0].Email_Address)
    });
    responsePromise.error(function(data,status,headers,config){
      alert('ajax failed');
    });
  },

这是非常令人困惑的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:12)

$ http正在序列化数据,因此在返回之前解析它 JSON.parse(data)