Здравствуйте. Помогите, пожалуйста, решить проблему. Настроил спринг секьюрити. Все работает. Авторизация проходит хорошо. Но вот когда я аджаксом пытаюсь выполнить запрос, то получаю
org.springframework.web.servlet.PageNotFound Request method 'POST' not supported at org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver.handleHttpRequestMethodNotSupported(DefaultHandlerExceptionResolver.java:215)
Т.е. ajax не возбуждает сервлет.
ajax
function popBox(num1, num2) {
x = confirm('Are you sure? ');
if (x == true) {
var xhr = new XMLHttpRequest();
xhr.open("POST", "userChangeTariff?tariffId=" + num1 + "&contractNumber=" + num2, false);
xhr.send();
}
сервлет
@RequestMapping(value = "/userChangeTariff", method = RequestMethod.POST)
public String changeTariff(HttpServletRequest request, Locale locale, Model model,
@RequestParam(value = "tariffId") String tariffId,
@RequestParam(value = "contractNumber") String contractNumber) {
int tariffID = Integer.parseInt(tariffId);
Contract contract = contractService.getContractByNumber(contractNumber);
Tariff tariff = tariffService.getEntityById(tariffID);
contract.setTariff(tariff);
contractService.updateEntity(contract);
return "user/userTariffs";
}
Самое интерересное, то что когда я выключаю csrf ( ) все начинает работать.
На странице размещен токен
<input type="hidden" name="<c:out value="${_csrf.parameterName}"/>"
value="<c:out value="${_csrf.token}"/>"/>
Почему csrf отрубает мне сервлет? Как это можно исправить?