Я разрабатывал 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.