Ajax отправка POST запроса на сервлет (Java)

197
09 января 2018, 14:11

Проблема следующая. Есть сервлет на сервере, который принимает данные в формате json

public class Servlet extends HttpServlet {
    public class AuthServlet extends HttpServlet {
        }
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            getServletContext().getRequestDispatcher("/index.jsp").forward(request, response);
        }
        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
             throws ServletException, IOException {
            StringBuffer sb = new StringBuffer();
            String line = null;
            BufferedReader reader = request.getReader();
            while ((line = reader.readLine()) != null)
                sb.append(line);
                String query=sb.toString();
        @Override
        public String getServletInfo() {
            return "Short description";
        }//
    }

Когда тестирую свой сервлет прогой Advanced REST client - посылаю пост запрос со строкой в виде json, то все работает нормально. Но если отправляю запрос через ajax, товсе летит к чертям. Как я выяснил, на каком-то этапе в строку добавляются экранирующие символы "\" т.к. в строке много кавычек. Вот ajax код.

$(document).ready(function(){
    $("#button").click(function(){
        query = $("#json").val();
        var userJson = JSON.stringify(dataa);
        //
        $.ajax
        ({
            type: "POST",//Метод передачи
            data: userJson,//Передаваемые данные в JSON - формате
            url: 'simple',//Название сервлета
            contentType: "application/json",
            error: function(message) {
                $("#response").html(message);
                console.log("request="+message.responseText);
            },
            success: function(data) {
                $("#response").html(data);
                console.log(data);
            }
        });

Похоже я что-то делаю не так. Как это исправить? И еще вопрос. Ответ от сервера я собираюсь вставлять в страницу через .innerHTML или .html. Не уверен, что это хорошая практика.

READ ALSO
Изменить context проекта Spring

Изменить context проекта Spring

Изменяю context-root проекта через properties->Web Project Settings с training на SpringMVCНо приложение всё равно работает только по этому адресу, почему?

165
Исключение при загрузке данных из xml

Исключение при загрузке данных из xml

Я создал JavaFX проект и в контроллере главного окна реализую метод, в котором при нажатии на кнопку должно создаться новое модальное окно, но при...

163
Почему Presenter не пересоздается вместе с Activity

Почему Presenter не пересоздается вместе с Activity

Не могу понять как работает MvpPresenterПочему когда Activity пересоздается, то MvpPresenter все еще живет

165
Как связать таблицы между собой?

Как связать таблицы между собой?

Пишу проект для андроид устройств и появилась необходимость в использовании баз данныхИмеется бд в которой 3 таблицы:

180