Получение недопустимой символьной ошибки в angularjs и значение ответа не определено

0

Я использую 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)
  • 0
    Ответ - это что-то, возвращенное Struts2. Не зная, как Struts2 может возвращать данные с ответом, вы не можете получить объект под углом.
  • 0
    Это НЕ допустимая строка json. Смотрите - json.org .
Теги:
struts2

4 ответа

1

Спасибо всем за помощь. Там был формат JSON, который вызывал проблему, а также в двойных кавычках данных. После исправления проблемы проблема решена.

0

Попробуйте добавить функцию ошибки в свой код. Это вызовет точное сообщение об ошибке.

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));}
   );
});
0

Попробуйте изменить ответ Content-Type на application/json из text/json.

  • 0
    Попробовал это тоже в действии, но это тоже не сработало.
  • 0
    Не могли бы вы опубликовать ошибку при использовании angular.js, а не минимизированной версии?
0

А также,

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

Вам нужны инъекции зависимостей, но это, вероятно, не то, что вызывает ошибку как таковую.

  • 0
    Можете ли вы привести один пример, это было бы очень полезно. Какие именно зависимости нужно вводить.
  • 0
    Они в примере кода, который я разместил. Бит ['$ scope', '$ http' перед вашей функцией ()
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню