Метод запроса ‘POST’ не поддерживается Spring и Vue.js при нажатии клавиши enter

#java #spring-boot #vue.js #jsp #post

#java #пружинная загрузка #vue.js #jsp #Публикация

Вопрос:

У меня такая проблема. Когда я нажимаю на кнопку поиска, код работает нормально, но когда я нажимаю enter, возникает исключение HttpRequestMethodNotSupportedException. Я знаю, что у меня нет контроллера POST, но он мне не нужен в любое время для кнопки поиска. Чего мне не хватает?

 <form method="post" @keypress.enter="search">
        <div class="card mb-3">
            <div class="card-body">
                <div class="form-row">
                    <div class="form-group col-md-4 required">
                        <label for="id">Id</label>
                        <input type="text" v-model="model.id" name="id" id="id" class="form-control" maxlength="50" >
                    </div>
                </div>
                
                <button type="button" id="btnSearch" class="btn btn-primary" @click="search">
                    <i class="fa fa-search" aria-hidden="true"></i>
                    Search
                </button>
            </div>
        </div>
</form>
 

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

1. Ну? У вас есть две @GetMapping буквы s, и ни одна из них не была показана @PostMapping .

2. Да, если вы нажмете кнопку поиска, код будет работать нормально, даже без удаления @PostMapping. Ошибка просто выдает, затем вы нажимаете клавишу ввода вместо того, чтобы нажимать кнопку. Так почему же один просит об этом, а другой нет?

3. Всегда начинайте отладку с границ. В данном случае это означает запрос REST между вашим браузером и серверной частью. Проверьте вкладку Сеть вашего браузера, убедитесь, что запрос отправляется на сервер, как вы ожидаете, и используйте такие инструменты, как curl или Postman, чтобы напрямую связаться с сервером и заставить его делать то, что вы хотите.

4. Попробуйте разделить ваш код на разные файлы. Какая часть является JSP, а какая — контроллером Java

Ответ №1:

Добавьте атрибут @keypress.enter.prevent в свое input поле