Двойная отправка формы, когда я обновляю страницу - PullRequest
1 голос
/ 27 февраля 2010

Как я могу избежать повторной отправки формы, когда я нажимаю обновить браузер? Спасибо.

Ответы [ 2 ]

6 голосов
/ 27 февраля 2010

Посмотрите шаблон Post / Redirect / Get и следующую статью:

http://www.theserverside.com/tt/articles/article.tss?l=RedirectAfterPost

Из приведенной выше ссылки:

Шаблон PRG можно перефразировать как это:

  • Никогда не показывать страницы в ответ на POST
  • Всегда загружать страницы, используя GET
  • Переход от POST к GET с помощью REDIRECT
0 голосов
/ 27 февраля 2010

Когда пользователь впервые посещает форму, создайте ему GUID (или другой токен, который можно однозначно идентифицировать для конкретного пользовательского запроса) и отправьте его на протяжении всей поездки в форме. Когда вы фиксируете в базе данных, добавьте это в поле там тоже. Быстрая проверка заранее, чтобы увидеть, если она уже существует, и вы отсортированы. :)

Редактировать: Эти способы не столько специфичны для случая, когда пользователь «нажимает [обновить] в браузере», а скорее как способ остановить случайные повторяющиеся записи в любом случае. Что касается других полезных тем, этот вопрос задает и получает несколько хороших ответов .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...