获取angularjs中的无效字符错误,响应值未定义

获取angularjs中的无效字符错误,响应值未定义,angularjs,json,struts2,Angularjs,Json,Struts2,我正在将angularjs与Struts2一起使用。 我能够将来自angularjs的请求发送到Struts2 action类,并在那里获取json对象,并在响应对象中设置json,但在浏览器控制台中检索angularjs中的json时出现无效字符错误,并且在调试响应对象未定义时出现错误。以下是相同的代码:- angularModule.controller('ResultDatabaseCtrl',function($scope,$http){

我正在将angularjs与Struts2一起使用。 我能够将来自angularjs的请求发送到Struts2 action类,并在那里获取json对象,并在响应对象中设置json,但在浏览器控制台中检索angularjs中的json时出现无效字符错误,并且在调试响应对象未定义时出现错误。以下是相同的代码:-

angularModule.controller('ResultDatabaseCtrl',function($scope,$http){
                        $http.get('/url/test').then(function(response)
                        {
                            $scope.data=response;
                        })
});
在Struts2动作中,我编写了以下代码:

    public String Test() throws ServletException {

        response.setContentType("text/json");
        response.setHeader("Cache-Control","no-cache");

        try {
            aggOutput = Delegator.getInstance().processRequest(aggInput);
            response.getWriter().write((String) aggOutput.getValueObject());
        } catch(Exception e) {
            e.printStackTrace();
        }

        return null;
    }
此处的
aggOutput.getValueObject
中包含以下格式的JSON代码:

{ identifier: "id",items: [ { id:"1", name:"ABC", Age:12 },
{  id:"1", name:"PQR", Age:2 }]}
从控制器检索angularjs中的数据时,在浏览器和控制台中调试时,获取响应未定义,错误如下:-

SyntaxError: Invalid character

at uc (http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js:15:466)

at $b (http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js:82:358)

   at Anonymous function (http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js:83:272)
  at n (http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js:7:331)

尝试将响应
内容类型
text/json
更改为
application/json
,并且

angularModule.controller('ResultDatabaseCtrl', ['$scope', '$http', function($scope,$http){
  $http.get('/url/test').then(function(response)
  {
    $scope.data=response;
  })
}]);

您需要注入依赖项,但这可能不是导致错误本身的原因。

感谢大家的帮助。.导致问题的是JSON格式,数据中也有双引号。更正后,问题得到解决。

尝试在代码中添加错误函数。这将捕获响应中的确切错误消息

angularModule.controller('ResultDatabaseCtrl',function($scope,$http){
   $http.get('/url/test')
   .then(function (response) {
        console.log(JSON.sringify(response));
        function(error) {console.log(JSON.sringify(error));}
   );
});

在实际操作中也尝试过,但也不起作用。你能在使用angular.js而不是缩小版本时发布错误吗?你能举个例子吗?这将非常有用。具体需要注入哪些依赖项。它们在我发布的代码示例中。函数()之前的['$scope','$http'位。谢谢..尝试了这一点,但仍然得到相同的错误。响应是由Struts2返回的。如果不知道Struts2如何通过响应返回数据,则无法获得angular格式的任何对象。这不是有效的json字符串。请参阅-。