net::ERR_CONNECTION_REFUSED ajax jquery Spring mvc

Есть реализация списка, порядок которого можно настраивать перетаскиванием, и после каждого перетаскивания порядок отправляется на сервер для сохранения:

//it is pagination - number of page
let pageNum = $("#navigation").find(".active").text();
//size of the page
let sizeNum = $("#size").find(".active").text();

//this function responsible for sorting
$(".list-group").sortable({
//after drop element this function trigger
    stop: (event, ui) => {
        let newGroup = [...event.target.querySelectorAll(".card")].map((el, index) => {
            // creating new list - replace only its position
            return {
                position: (pageNum - 1 * sizeNum) + index + 1,
                id: $(el).children().children("input").val(),
                title: $(el).children().children(".card-title").text(),
                description: $(el).children().children(".card-text").text()
            };
        });

        console.log(newGroup);

        let url = 'http://localhost/tasks';

        $.ajax({
            url: url + '/positions',
            method: 'PATCH',
            data: JSON.stringify(newGroup),
            contentType: "application/json; charset=utf-8",
            headers: {
                'Authorization': 'Bearer ' + localStorage.getItem('access_token')
            },
            statusCode: {
                200: function () {
                    //this function makes request to server and get new updated with positions list
                    getTasks(url + '?size=' + sizeNum + '&page=' + pageNum)
                },
                401: function () {
                    let refreshed = refreshToken();
                    //try again if access_token expired
                    if (refreshed) {
                        $.ajax({
                            url: url + '/positions',
                            method: 'PATCH',
                            data: JSON.stringify(newGroup),
                            contentType: "application/json; charset=utf-8",
                            headers: {
                                'Authorization': 'Bearer ' + localStorage.getItem('access_token')
                            },
                            success: function () {
                                getTasks(url + '?size=' + sizeNum + '&page=' + pageNum)
                            }
                        });
                    }
                },
                403: function () {
                    window.location = '../403_forbidden.html';
                }
            }
        });
    }
});

Примерно так выглядит построение содержимого:

    let list = '';
    data.tasks.forEach(function (task){
        list += `<div class="card mb-3" data-position="${task.position}">
                            <div class="card-body">
                                <h5 class="card-title">${task.title}</h5>
                                <p class="card-text">${task.description}</p>
                                <input type="hidden" value="${task.task_id}">
                                <p><small class="text-danger"></small></p>
                                <button class="btn btn-outline-warning" onclick="editTask(this)">Edit</button>
                                <button class="btn btn-outline-danger" onclick="deleteTask(this)">Delete</button>
                            </div>
                       </div>`;
    });
    $("#tasks").html(list);

В общем выглядит это так: с сервера приходит список, засовывается на страницу. Если какой-то элемент перетащить, порядок фиксируется и отправляется на сервер на сохранение. Если все прошло удачно, делается запрос на список, отсортированный по позиции, и вновь помещается на страницу.

Дело вот в чем: все остальные ajax-функции работают отлично, падает только эта

введите сюда описание изображения

Метод на стороне сервера:

@RestController
@RequiredArgsConstructor
@RequestMapping("/tasks")
public class TasksController {

    @PatchMapping("/positions")
    @PreAuthorize("hasRole('ADMIN')")
    public void saveOrdering(@RequestBody List<TaskInDto> dtoTasks) {
        List<Task> tasks = dtoTasks.stream()
                .map(mapper::fromDto)
                .collect(Collectors.toList());

       //service saves data 
        taskService.saveAll(tasks);
    }
}

Если провернуть вышеперечисленные операции через postman - все так же отлично работает. В чем может быть дело?


Ответы (0 шт):