Остановить браузеры, запрашивающие повторную отправку данных формы при обновлении?

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

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

4 ответов


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

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


легкий путь после response.sendRedirect перезагружает страницу следующим образом:

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

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


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

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

или использовать это -

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

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


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

единственный способ-перейти в адресную строку и нажмите Enter. Это вызовет новый запрос.