Ajax вызов вызывает ошибку неверного символа - PullRequest
0 голосов
/ 02 марта 2020

Я работаю над приложением Java, используя Struts 1.2. Я сталкиваюсь с ошибкой блокировки, когда я выполняю AJAX вызов действия Struts.

Действие Struts, getInfos.html, вызывается успешно, но после этого, когда я выполняю вызов AJAX, я получаю следующая ошибка в консоли:

Недопустимый символ / ошибка разбора

Переменная данных имеет правильный формат JSON. Почему это вызвало эту ошибку?

Я рассмотрел все подобные вопросы в Интернете, но я не знаю, почему она вызывает ошибку недопустимого символа.

$.ajax({
  type: "POST",
  url: "getInfos.html",
  dataType: "json",
  async: false,
  cache: false,
  data: {
    Code: "code1",
    type: "type",
    mand: "mand",
    signature: "signature"
  },
  success: function(data) {
    console.log('succes');
  },
  error: function(XMLHttpRequest, textStatus, errorThrown) {
    console.log('my error is : ' + errorThrown);
  }
});

В методе execute это обрабатывает запрос ajax, я вызываю атрибуты, используя запрос

    final String code = (String) request.getAttribute("code");
    final String signature = (String) request.getAttribute("signature");
    final String type= (String) request.getAttribute("type");
               /*
            Making a call to a webservice using the attributes bellow, 
             using **response** Object
               */
     if (reponse != null && 
      (CodeReponseHttp.OK.equals(reponse.getCodeReponse()))) {
                jsonObj.put(SUCCESS_CALL, true);

            } else {
                jsonObj.put(SUCCESS_CALL, false);
            }

    return new JsonResult(jsonObj);

Но они установлены в нуль; Это означает, что данные ajax не передаются в запрос, когда я отлаживаю метод execute и явно устанавливаю значения для этих атрибутов, все работает нормально.

new JsonResult (jsonObj) является обобщенным c классом с конструктором, который принимает JSONObject

Ответы [ 2 ]

0 голосов
/ 03 марта 2020

Проблема была решена, после отладки тип ответа не был JSON, поскольку существует перенаправление на страницу ошибки, если выдается исключение, исключение выдается, потому что атрибуты данных были нулевыми, и он стал Мы знаем, что это параметры, а не атрибуты, поэтому получение параметров решило проблему.

request.getParameter("code");

Спасибо всем за сотрудничество.

0 голосов
/ 02 марта 2020

Как и Rory McCrossan Comment, это может быть ответ, который вы получили не json, и ваш код ожидает json ответа

Когда я комментирую параметр dataType, он отлично работает

$.ajax({
    type : "POST",
    url : "getInfos.html",      
    //dataType : "json",
    async: false,
    cache: false,
    data: JSON.stringify({
    Code : "code1",
    type : "type",
    mand : "mand",
    signature : "signature"}),
    success : function(data){
        console.log('succes');
    },
    error : function(XMLHttpRequest, textStatus, errorThrown) {

         console.log('my error is : ' + errorThrown);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...