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