Я использую angularjs с Struts2. Я могу отправить запрос от angularjs к классу действий Struts2 и получить там объект json и установить json в объекте ответа в действии, но при получении json в angularjs получить недопустимую ошибку персонажа в консоли браузера и в отладке получить неопределенный ответ объект. Ниже приведен код для него: -
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)
Спасибо всем за помощь. Там был формат 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));}
);
});
Попробуйте изменить ответ Content-Type
на application/json
из text/json
.
А также,
angularModule.controller('ResultDatabaseCtrl', ['$scope', '$http', function($scope,$http){
$http.get('/url/test').then(function(response)
{
$scope.data=response;
})
}]);
Вам нужны инъекции зависимостей, но это, вероятно, не то, что вызывает ошибку как таковую.