По сути, вы пытаетесь отправить что-то кому-то, кто готов принять GET. Это похоже на разговор по-английски с человеком, говорящим только по-итальянски ... Они не могут понимать друг друга.
Каковы бы ни были ваши причины, вы должны заставить свой клиент и сервер говорить на одном языке и использовать один и тот же туннель ... Если ваш клиент POST, ваш сервер должен принять POST. Если ваш клиент GET, ваш сервер должен принять GET.
$.ajax({
method: 'POST',
url: '/vacation/deleteEvents',
contentType: 'application/json; charset=utf-8;',
dataType: 'json',
data: JSON.stringify(vacation),
success: function (response) {
if (response !== "OK")
alert(response);
else
console.log(response);
},
error: function (e) {
console.log(e);
}
});
@RequestMapping(value = "/vacation/deleteEvents", method = RequestMethod.POST)
public String deleteCalendarEvents (@RequestBody Vacation vacation, HttpSession session){
//code
}
Если вы хотите принять GET, тогда ваш клиент должен отправить запрос GET:
$.ajax({
method: 'GET',
url: '/vacation/deleteEvents',
success: function (response) {
if (response !== "OK")
alert(response);
else
console.log(response);
},
error: function (e) {
console.log(e);
}
});
@RequestMapping(value = "/vacation/deleteEvents", method = RequestMethod.GET)
public String deleteCalendarEvents (HttpSession session){
//code
}
Итак, вы должны POST, если вы хотите иметь возможность получить @RequestBody
.
Но тогда, более RESTFul-ориентированным способом, вы можете отправить запрос DELETE:
$.ajax({
method: 'DELETE',
url: `/vacation/${vacation.id}`, // assuming your object vacation has an id field.
success: function (response) {
if (response !== "OK")
alert(response);
else
console.log(response);
},
error: function (e) {
console.log(e);
}
});
@RequestMapping(value = "/vacation/{vacationId}", method = RequestMethod.DELETE)
public String deleteCalendarEvents (@PathVariable int vacationId, HttpSession session){
//code
}
Надеюсь, это поможет вы