Предотвращение двойного HTTP POST - PullRequest
19 голосов
/ 14 января 2009

Я сделал небольшое приложение для регистрации на событие. Пользователь вводит свои данные и нажимает кнопку «Войти».

Теперь в базе данных иногда встречаются люди с двойными данными, которые очень быстро вставляются 2 раза друг за другом. Это может означать только то, что кто-то дважды нажал кнопку, что привело к появлению двух сообщений.

Это распространенная проблема в Интернете, поскольку приложения для кредитных карт и форумы часто говорят: «Достаточно щелкнуть один раз!».

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

Этот курс не учитывается для веб-форм ASP.NET, поскольку POST не имеет большого значения.

Ответы [ 11 ]

0 голосов
/ 14 января 2009

Изменение на стороне клиента является обычной техникой:

  • Отключить кнопку отправки
  • Измените экран на экран "Пожалуйста, подождите"
  • Если форма была модальной, возвращение экрана к обычному режиму (это дает преимущество, заставляющее вещи выглядеть действительно гладкими)

Но это не идеально. Все зависит от доступности JS, и, если это не так, без обнаружения дублирования на стороне сервера, вы все равно получите дубликаты.

Поэтому я советую разработать некое закулисное обнаружение , а затем улучшить вашу форму, чтобы люди с JS не могли выполнять двойную отправку.

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