Предотвращение повторной подачи формы - PullRequest
103 голосов
/ 13 октября 2010

Первая страница содержит форму HTML. Вторая страница - код, который обрабатывает представленные данные.

Форма на первой странице отправляется. Браузер перенаправляется на вторую страницу. Вторая страница обрабатывает представленные данные.

В этот момент, если обновляется вторая страница, появляется предупреждение «Подтвердить повторную отправку формы».

Можно ли это предотвратить?

Ответы [ 11 ]

0 голосов
/ 18 июля 2016

Шаблон PRG может предотвратить повторную отправку, вызванную обновлением страницы.Это не 100% безопасная мера.

Обычно я буду предпринимать действия, указанные ниже, чтобы предотвратить повторную отправку:

  1. Клиентская сторона - используйте javascript для предотвращения повторных нажатий на кнопку, которая вызовет отправку формы.Вы можете просто отключить кнопку после первого щелчка.

  2. Сторона сервера - я вычислю хэш для отправленных параметров и сохраню этот хэш в сеансе или базе данных, поэтому, когда дублированная отправка былаПолучив, мы можем обнаружить дублирование, а затем правильно ответить клиенту.Однако вы можете создать хеш на стороне клиента.

В большинстве случаев эти меры могут помочь предотвратить повторную отправку.

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