Метод запроса ‘POST’ не поддерживается ОШИБКА 405

#jquery #ajax #spring #spring-mvc #spring-security

#jquery #ajax #весна #spring-mvc #spring-безопасность

Вопрос:

Этот вопрос может быть продублирован, я перепробовал много решений. вот мой контроллер, для которого я попробовал использовать «restcontroller». Я прочитал в сообщении: у меня могла быть проблема с ролями (безопасность), но я удалил все теги, и это бесплатно, и я вхожу в систему как администратор. Редактировать: я забыл упомянуть, у меня есть основной путь «/ giro», затем в моем JS я указываю на «giro / saveExpress»

 @ResponseBody
@RequestMapping(value = "/saveExpress", method = {RequestMethod.POST}, produces = { "application/json" })
public String saveExpress(@RequestBody String nombreGiro) {
    Giro giro = new Giro();
    giro.setDetalles(nombreGiro);
    giroService.save(giro);     
    return "exito";
    
}
  

html (внутри модального):

 <div class="modal-body">
    <div class="form-group row">
    <form id="btnGiro" method="POST" enctype="multipart/form-data">
            <label for="nombre" class="col-sm-2 col-form-label">Nombre</label>
            <div class="col-sm-6">
            <textarea name="nombreGiro" id="nombreGiro" class="form-control"></textarea>
            </div>
            <button type="submit" class="btn btn-primary">Guardar</button>
    </form>
  </div>
    
</div>
  

Мой javascript:
$(документ).готово(
функция() {

         // SUBMIT FORM
        $("#btnGiro").submit(function(event) {
            alert('hi');
            // Prevent the form from submitting via the browser.
            event.preventDefault();
            ajaxPost();
        });

        function ajaxPost() {
            var data = {}
            data["nombreGiro"] = $("#nombreGiro").val();
            $.ajax({
                 type: "POST",
                 contentType: 'application/json',
                 url: "/giro/saveExpress",
                 data: JSON.stringify(data),
                 dataType: 'json',
                 timeout: 600000,
                 success: function (data) {
                     $("#btnGiro").prop("disabled", false);
                     //...
                 },
                 error: function (e) {
                     $("#btnGiro").prop("disabled", false);
                     //...
                 }
        });

        }

    })
  

Комментарии:

1. Конечная точка — «/ saveExpress» или «/ giro / saveExpress»?

2. Не могли бы вы добавить весь repsonse с заголовками и телом к вашему вопросу? Должен быть allow заголовок, который показывает разрешенные методы HTTP.

3. Я отредактировал. У меня есть основной путь в моем контроллере. «/ giro» тогда. это «/ giro / saveExpress».

4. Можете ли вы показать мне, как @NakulGoyal? Я думал, что в этом нет необходимости, я нахожусь в том же домене.