Почему Firefox отправляет заново информацию после выполнения post запроса

Ошибка:

To display this page, Firefox must send information that will repeat any action (such as a search or order confirmation) that was performed earlier

Вот перевод:

Чтобы отобразить эту страницу, Firefox должен отправить информацию, которая будет повторять любое действие (например, поиск или подтверждение заказа), выполненное ранее.

Такая ошибка возникла при разработке сайта с использованием Thymeleaf и Java 21. Возникла при добавлении к тэгу HTML type="submit" (<button type="submit" class="button">) или из-за чего-то другого. Почему она возникла?

Прилагаю вероятный код, из-за которого и возникла эта ошибка... может быть. Заранее вас благодарю за ответы!

Контроллер:

@PostMapping
    public String commentAdd(@RequestParam String name, @RequestParam String text, Model model) {
        Comment comment = new Comment(name, text);
        commentRepository.save(comment);
        return "index";
    }

Сам html-документ (не весь естественно):

<div class="container-comment">
        <div class="comment">
            <form class="comment-input-button" method="post">
                <div class="comment-input">
                    <div class="field">
                        <input type="text" name="name" class="name" placeholder="Имя">
                    </div>
                    <div class="field">
                        <textarea name="text" class="text" placeholder="Текст"></textarea>
                    </div>
                </div>
                <button type="submit" class="button">
                    ДОБАВИТЬ
                </button>
            </form>
            <div class="comments" th:each="comment : ${comments}">
                <div th:text="${comment.username}" class="name_user"></div>
                <div th:text="${comment.text}" class="text_user"></div>
            </div>
        </div>
    </div>

Ответы (1 шт):

Автор решения: Roman C

Да, точно на тэге <form> нужно ставить атрибут th:action, чтобы было видно куда отправляется post запрос. А ошибка возникает потому что страница перегружается после отправки формы на сервер.

Вот правильный ответ:

Это происходит, когда вы обновляете страницу, являющуюся результатом запроса POST (а не запроса GET).

Чтобы избежать этого, вы можете использовать шаблон POST/redirect/GET.


А вот ещё есть другой ответ на Зачем нужна решетка в этом запросе и чем первый action отличается от второго?:

... При этом значение фрагмента # предохраняет страницу от рефреша.

→ Ссылка