jQuery ajax вызов возвращает ошибку 405 в весеннем проекте boot2 - PullRequest
0 голосов
/ 08 ноября 2019

Я разрабатывал pcf-приложение springboot2 и вызывал ajax jquery call, но этот вызов возвращает код состояния 405. пробовал другой синтаксис, но ничего не работает.

Вот мой код:

<div id="tableSection" th:if="${tasks != null}">
        <table id="taskTable" class="table">
            <thead>
                <tr>
                    <th scope="col" class="col-sm-1">Task Id</th>
                    <th scope="col" class="col-sm-4">Task Name</th>
                    <th scope="col" class="col-sm-1">Assignee</th>
                    <th scope="col" class="col-sm-1">Start Date</th>
                    <th scope="col" class="col-sm-1">End Date</th>
                    <th scope="col" class="col-sm-1">Status</th>
                </tr>
            </thead>
            <tbody>
                <tr th:each="task : ${tasks}" th:if="${task != null}">
                    <td th:text="${task.id}"></td>
                    <td th:text="${task.name}"></td>
                    <td>
                        <span th:text="${task.assignee == null} ? '' : ${task.assignee}" class="assignee"></span>
                        <button type="button" class="btn btn-danger btn-sm" title="Remove assigned user" th:if="${task.endDate == null and task.assignee != null}" data-toggle="modal" data-target="#confirm-unassign" th:id="${task.id}" data-record-id="" th:attr="data-record-id=${task.id}">
                            <span class="glyphicon glyphicon-remove"></span>
                        </button>
                    </td>
                    <td th:text="${task.startDate == null} ? '' : ${#dates.format(task.startDate, 'dd-MMM-yyyy')}"></td>
                    <td th:text="${task.endDate == null} ? '' : ${#dates.format(task.endDate, 'dd-MMM-yyyy')}"></td>
                    <td th:text="${task.endDate == null} ? 'Active' : 'Completed'"></td>
                </tr>
            </tbody>
        </table>
        </div>
    </div>
    <!-- Unassign confirmation modal -->
    <div class="modal fade" id="confirm-unassign" role="dialog">
        <div th:replace="fragments/modal :: modal_confirm(modalTitle='Confirm Unassign', modalBody='Do you want to unassign this task? Once unassigned, someone needs to claim this task on TBOP.')">
        </div>
    </div>
    <!-- Error modal -->
    <div class="modal fade" id="unassign-error" role="dialog">
        <div th:replace="fragments/modal :: modal_error(modalTitle='Unassign Error', modalBody='Something went wrong during unassign...')">
        </div>
    </div>  
    <div th:replace="fragments/footer::footer-content"></div>
    <script type="text/javascript">

        //unassign handling
        $("#confirm-unassign").on('click', '.btn-ok', function(e){
            var taskId = $(this).data().recordId;

            //ajax call to unassign
            $.ajax({
                type        : "POST",
                contentType : "application/json; charset=utf-8",
                url         : "/task-web/tbop/unassign/"+taskId,
                timeout     : 5000,
                success     : function(data){
                    $("#confirm-unassign").modal('hide');
                    $("#"+taskId).hide();
                    $("#"+taskId).prev(".assignee").hide();
                },
                error       : function(data){
                    $("#confirm-unassign").modal('hide');
                    $("#unassign-error").modal('show');
                }
            });

        });
        $('#confirm-unassign').on('show.bs.modal', function(e) {
            $('.btn-ok', this).data('recordId', $(e.relatedTarget).data('record-id'));
        });

Вот класс контроллера:

 @PostMapping("/unassign/{taskid}")
    public ResponseEntity<Boolean> unassign(@PathVariable("taskid") @Valid Integer taskId)
    {
        logger.info("Unassigning task {}", taskId);
        taskService.unassignTask(taskId);
        return ResponseEntity.ok(true);
    }

Это зависимости, которые я добавил вpom.xml

<!-- webjar dependency for the client side libraries -->
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>bootstrap</artifactId>
            <version>3.3.7-1</version>
        </dependency>
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>bootstrap-datetimepicker</artifactId>
            <version>2.4.2</version>
        </dependency>
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>jquery</artifactId>
            <version>3.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>datatables</artifactId>
            <version>1.10.12</version>
        </dependency>
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>datatables-buttons</artifactId>
            <version>1.3.1-1</version>
        </dependency>
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>jszip</artifactId>
            <version>2.4.0</version>
        </dependency>
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>webjars-locator</artifactId>
            <version>0.30</version>
        </dependency>

, когда я запускаю это приложение, оно показывает модальное окно ошибки. В консоли отображается ошибка 405.

Request URL: https://testsandbox.sample.com/task-web/tbop/unassign/662727
Request Method: POST
Status Code: 405 Method Not Allowed

Неправильный ли формат jquery? сослались на несколько образцов, но все еще получают 405.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...