Мы работаем в .net MVC и имеем форму отправки запроса по электронной почте. Пользователь находился на очень неустойчивом подключении к Интернету (на самолете) и утверждает, что, хотя нажав кнопку отправки один раз, форма была отправлена 6 раз, в результате чего отправлено 6 писем. Я искал вокруг, но не смог найти способ объяснить это поведение. Есть ли способ отправить опубликованную форму несколько раз из-за пятнистого соединения?Могу печатать много раз в несколько раз
ответ
Это действительно зависит от фактического браузера, но я еще не видел, чтобы кто-то делал что-то подобное (фактически, это было бы опасно, например, в контексте какой-либо онлайн-службы заказа).
Однако такие вещи могут произойти случайно случайно. Иногда люди не знают о нескольких кликах, потому что они не замечают, что первый щелчок запускает что-либо. Может случиться так, что браузер не сразу обнаруживает действие/активность загрузки, особенно с нестабильными подключениями. Также возможно, что из-за какой-то проблемы с аппаратным обеспечением (сломанная кнопка мыши) выполняется несколько кликов, несмотря на однократное нажатие.
Чтобы быть уверенным, я бы просто добавил минимальный код JavaScript в форму: На отправке, отключите кнопку отправки, а также избегайте дальнейших попыток отправить форму (перехватите событие onsubmit
и верните true
в первый раз; оттуда всегда возвращаются false
).
Я знаю, что опаздываю, но столкнулся с подобной проблемой, и я считаю, что проблема связана с браузером. Мы используем AJAX для отправки данных формы контроллеру, и обработка занимает много времени, так как обрабатываемые данные огромны. Браузеры, такие как Chrome, ждут определенного времени и, если они не получат ответа, предполагают, что запрос потерян, и отправить другой запрос на свой собственный, что вполне возможно на вашем конце. Обратите внимание, что в браузерах такая же проблема не возникает Firefox и IE.
Что мы сделали, чтобы избежать этой ситуации, чтобы заставить метод работать асинхронно и вернуть ответ к методу AJAX за этот промежуток времени, чтобы избежать повторного запроса запроса Chrome.
Этот link подробно объясняет эту же проблему.
- 1. Python: печатать итерации слишком много раз
- 2. Печатать текст несколько раз в Brainfuck
- 3. Javascript в HTML5 - нужно много раз (() несколько раз показать шаги
- 4. печатать этикетку несколько раз по значению
- 5. печатать питон код несколько раз (NO LOOPS0
- 6. PYTHON несколько раз печатать из справочного файла
- 7. Петля над списком много раз
- 8. onReceive вызвано много раз
- 9. SQL Выберите несколько условий И много раз
- 10. Loop xldown много раз
- 11. используя @Autowired много раз
- 12. Блокировка Mutex много раз
- 13. Повторяйте текстуру много раз
- 14. Загрузка спрайтов 1 раз или много раз?
- 15. Зацикливание слишком много раз
- 16. Выполнение файла много раз
- 17. Libgdx - много раз сдавал?
- 18. .slideToggle() запускается много раз?
- 19. Запись раз много памяти
- 20. Отменить много раз в Vim?
- 21. touchhend trigger много раз
- 22. Как печатать строку несколько раз, ссылаясь на нее только один раз?
- 23. Успех печатается несколько раз
- 24. NSURLConnection запускается много раз
- 25. Последовательность совпадений много раз
- 26. socket.on() слишком много раз
- 27. touchsBegan много раз звонил
- 28. OnControllerColliderHit вызывает много раз
- 29. В JS как печатать строку во время цикла несколько раз?
- 30. Как печатать несколько раз из списка в Python
Благодарим вас за понимание. Они были в Chrome. И мы определенно поставили защиту клиентов и серверных сторон, поскольку; Я просто хотел убедиться, что знаю полную картину. – cdutcher