Форма подается дважды
У меня есть форма, которая обрабатывает платеж, но примерно один из каждых 300 платежей приходит, хотя дважды, мои журналы показывают, что было два запроса для всех этих случаев.
Я реализовал некоторый JavaScript, который отключает кнопку отправки после ее нажатия, и мне кажется, что она работает нормально, но время от времени я получаю двойное представление.
Кто-нибудь знает что-нибудь еще, что может быть причиной отправки формы дважды?
2 ответа
Как говорит Дагон, проверки на стороне сервера - ваш друг. Дайте каждому экземпляру формы случайно сгенерированный ключ (было бы неплохо guid) и сохраните его в базе данных. Не принимайте формы, содержащие ключ, который уже существует в БД.
Кроме того, вы просто отображаете HTML после выполнения логики обработки формы? Если это так, попробуйте перенаправить после обработки формы.
Это способ: после того, как пользователь нажмет кнопку отправки формы, отключите его с помощью JavaScript. Это должно помешать пользователю дважды отправить форму случайно. Это работает для всех сайтов, которые мы реализуем, как, потому что. Поскольку иногда пользователь теряет терпение и нажимает кнопку отправки формы несколько раз, поэтому вы получаете двойные запросы. Что нужно, чтобы убедиться, что он работает для всех браузеров (я имею в виду отключение кнопки).
Также вы можете сделать это на стороне сервера, это просто сложнее.
Мы используем похожий на голосование ответ в кнопке включения / выключения отправки с кодом сервера jQuery и Coldfusion