Подтвердить что ты не робот

Остановить браузеры с просьбой повторно отправить данные формы при обновлении?

У меня есть форма отправки через POST. Я отправлю форму, и все хорошо, однако, если я попытаюсь перезагрузить новую страницу, которую форма отправит после отправки, я получаю сообщение "Вы хотите отправить данные" (FireFox). Это может произойти и в других браузерах, но я не уверен.

Кто-нибудь знает, как остановить это сообщение, чтобы я мог продолжить и обновить страницу. Это не очень удобно для производственных сред - пользователи могут отправить одну и ту же форму дважды!

4b9b3361

Ответ 1

Вам нужно использовать шаблон POST-Redirect-GET.

Сделайте свою форму ответом с перенаправлением на запрос GET.
Таким образом, когда пользователь обновит страницу, он только повторно отправит GET.

Ответ 2

Простым способом после response.sendRedirect является перезагрузка страницы следующим образом:

window.location.href = window.location.pathname;

Это работает для меня.

Ответ 3

Это будет нарушение безопасности, если браузеры это сделают. Например, при обработке кредитных карт сайт может взимать плату с пользователя дважды.

Единственный способ round - перейти в адресную строку и нажать enter. Это вызовет новый запрос.

Ответ 4

Если url не имеет параметров, используйте это -

window.location = window.location.href+"?rnd="+Math.random();

Или используйте это -

window.location = window.location.href+"&rnd="+Math.random();

Он будет работать.