#javascript #java #ajax #spring #spring-mvc
#javascript #java #ajax #весна #spring-mvc
Вопрос:
У меня есть сообщение AJAX
$.ajax({
type: "POST",
contentType: "application/json",
url: "/rating/save",
data: JSON.stringify(rating),
dataType: "json",
mimeType: "application/json",
success: function (responseData) {
console.log(responseData);
window.location.href = "/welcome"
},
error: function (responseData) {
console.log(responseData);
}
});
Контроллер
@Controller
public class RatingController {
........
@RequestMapping(value = "/rating/save",method = RequestMethod.POST)
public ResponseEntity<Object> saveRating(@RequestBody List<RatingDTO> ratingDTO) {
return new ResponseEntity<>(ratingService.save(ratingDTO),HttpStatus.OK);
}
}
Каждый раз, когда я пытаюсь обработать ответ от контроллера, даже если нет исключения, я получаю
status: 405
statusText: "error"
Ошибка говорит о том, что метод не разрешен, но сервис с этой конечной точки работает отлично.
Комментарии:
1. войдите в систему
ResponseEntity<>(ratingService.save(ratingDTO),HttpStatus.OK)
и проверьте значение2.
<200 OK,[Rating{id=53, score=2.2, stageOfApprove=0, comment='null', date=Thu Mar 14 09:30:13 EET 2019}],{}>
3. Попробуйте удалить mimeType: «application / json»,
4. Есть ли у вас Jackson в вашем classpath?
Ответ №1:
Вы должны установить POST через method
атрибут:
$.ajax({
method: "POST",
...
Комментарии:
1. тот же результат, может быть, проблема в библиотеке, которую я использую? ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js
2. @TarasDanylchenko Вы пробовали это с последней версией jQuery?
3. Да, 3.3.1 — это последняя версия jQuery, я пробовал с этим code.jquery.com/jquery-3.3.1.min.js и получил тот же результат
4. @TarasDanylchenko ваш ajax выглядит хорошо, так что, может быть, вы сможете проверить, правильно ли отвечает сервер. Попробуйте какой-нибудь клиент, Postman или curl:
curl -X POST <url>
5. Итак, проблема на стороне сервера. Проверьте журнал, возможно, вы найдете там проблему.