Ответ 1
Вам нужно использовать шаблон POST-Redirect-GET.
Сделайте свою форму ответом с перенаправлением на запрос GET.
Таким образом, когда пользователь обновит страницу, он только повторно отправит GET.
У меня есть форма отправки через POST. Я отправлю форму, и все хорошо, однако, если я попытаюсь перезагрузить новую страницу, которую форма отправит после отправки, я получаю сообщение "Вы хотите отправить данные" (FireFox). Это может произойти и в других браузерах, но я не уверен.
Кто-нибудь знает, как остановить это сообщение, чтобы я мог продолжить и обновить страницу. Это не очень удобно для производственных сред - пользователи могут отправить одну и ту же форму дважды!
Вам нужно использовать шаблон POST-Redirect-GET.
Сделайте свою форму ответом с перенаправлением на запрос GET.
Таким образом, когда пользователь обновит страницу, он только повторно отправит GET.
Простым способом после response.sendRedirect
является перезагрузка страницы следующим образом:
window.location.href = window.location.pathname;
Это работает для меня.
Это будет нарушение безопасности, если браузеры это сделают. Например, при обработке кредитных карт сайт может взимать плату с пользователя дважды.
Единственный способ round - перейти в адресную строку и нажать enter. Это вызовет новый запрос.
Если url не имеет параметров, используйте это -
window.location = window.location.href+"?rnd="+Math.random();
Или используйте это -
window.location = window.location.href+"&rnd="+Math.random();
Он будет работать.