Почему ajax запрос завершается с ошибкой?

109
17 ноября 2020, 04:40

У меня есть REST контроллер, который может удалять/вставлять/редактировать данные из бд, отображаю на jsp странице таблицу с соответствующими кнопками, использую jq. Мне нужно добавлять/удалять/редактировать строки таблицы без перезагрузки страницы, я использую ajax запросы. Адекватно работает только удаление, редактирование еще не добавил, неадекватно работает добавление объекта. Сам объект добавляется в бд и метод save контроллера возвращает вставленный объект с id(id генерирую на уровне бд)и после перезагрузки страницы он отрисовывается в таблице. Объект я не могу добавить просто в таблицу с помощью jquery потому что запрос ajax'a на добавление завершается в секции error и не передается в response.Приложу код скрипта и скрин ошибки, потому что я не знаю как ее можно описать словами.

<script>
        var LIST_PRODUCTS = "/listProducts";
        $(document).ready(function() {
        var table = $('table');
        //ДЛЯ ОТРИСОВКИ ТАБЛИЦЫ
        function showTable() {
            $.ajax({
                type: "GET",
                url: LIST_PRODUCTS,
                dataType: "json",
                async: true,
                success: function (result) {
                    for (var i in result) {
                        var str = "<tr>";
                        for (var prop in result[i]) {
                            str += "<td>" + result[i][prop] + "</td>";
                        }
                        str += "<td><a href='#' data-id='" + result[i].id + "' class='delete'>удалить</a></td>";
                        str += "<td><a href='/' data-id='" + result[i].id + "' class='edit'>редактировать</a></td>";
                        str += "</tr>";
                        table.append(str);
                    }
                },
                error: function () {
                    alert("Exception on out");
                }
            });
        }
showTable();
            //УДАЛЕНИЕ
            $(document).on('click', '.delete', function () {
                var row = $(this).closest('td').parent();
                console.log($(this).attr("data-id"));
                $.ajax({
                    type: "DELETE",
                    url: LIST_PRODUCTS + "/delete/" + $(this).attr("data-id"),
                    async: true,
                    success: function (result) {
                        row.remove();
                    },
                    error: function (result) {
                        alert("Exception in DELETE")
                    }
                });
            });
            $('#form').submit(function () {
                sendAjaxForm();
                console.log(response);
            });
            function sendAjaxForm() {
                var DATA = {
                    name: $("#name").val(),
                    description: $("#description").val(),
                    create_date: $("#create_date").val(),
                    place_storage: $("#place_storage").val(),
                    reserved: $("#reserved").val()
                };
                $.ajax({
                    url: LIST_PRODUCTS + "/create",
                    type: "POST",
                    data: JSON.stringify(DATA),
                    dataType: "json",
                    contentType:"application/json; charset=utf-8",
                    async: true,
                    success: function (response) {
                        alert(response)
                    },
                    error: function (res) {
                        alert(res);
                    }
                });
            }
            $('.js-button-create').click(function() {
                $('.js-overlay-create').fadeIn();
                $('.js-overlay-create').addClass('disabled');
            });
            // закрыть на крестик
            $('.js-close-create').click(function() {
                $('#reset').click();
                $('.js-overlay-create').fadeOut();
            });
        });
    </script>

READ ALSO
Почему не открывается модальное окно?

Почему не открывается модальное окно?

Сделал модальное окно с помощью jqueryВесь html код располагается на jsp странице, также использую spring-boot, tomcat

135
Поиск в ширину с кратчайшем путем java

Поиск в ширину с кратчайшем путем java

Вопрос по существующей задаче Построение алгоритма, с чего подступиться? @Nero Вопрос такой, чем заменить конструкцию yield return для реализации...

127
Анимации фокуса в WPF

Анимации фокуса в WPF

Как убрать все стили фокуса в WPF с кнопки? Какая пропертя в стиле за это отвечает, и как с ней работать?

144
c# 8 non-nullable types и null!

c# 8 non-nullable types и null!

По мотивам этого вопроса

127