我們正在使用.net MVC並且有一個表單提交電子郵件請求。一位用戶的網絡連接非常不穩定(在飛機上),並聲稱儘管點擊了發送按鈕一次,表單發佈了6次,導致發送了6封電子郵件。我一直在環顧四周,但一直未能找到解釋這種行爲的方式。發佈表單由於點擊連接而多次提交,是否有任何方法?可以頁面多次悄悄發佈
1
A
回答
1
這真的取決於實際的瀏覽器,但我還沒有看到有人這樣做(事實上,這樣做會很危險,例如在一些在線訂購服務的情況下)。
但是,這樣的事情可能會不經意地發生。有時候人們並不知道多次點擊,因爲他們沒有注意到第一次點擊觸發任何事情。瀏覽器可能不會立即顯示任何加載操作/活動,尤其是在連接不穩定的情況下。此外,由於某些硬件問題(鼠標按鈕損壞),可能會執行多次點擊,儘管只需點擊一次即可。
可以肯定的是,我只需在表單中添加一些最低限度的JavaScript代碼:在提交時,禁用提交按鈕,並且還可以避免進一步嘗試發送表單(第一次攔截onsubmit
事件並返回true
;從那裏總是返回false
)。
2
我知道我遲到了,但我面臨類似的問題,我相信這個問題是與瀏覽器。我們使用AJAX將表單數據提交給控制器,處理需要很長時間,因爲要處理的數據非常龐大。像Chrome這樣的瀏覽器,等待一段時間,如果他們沒有收到響應,則假設請求丟失,並自行發送另一個請求,這很可能是您的情況。請注意,同樣的問題在瀏覽器中不會發生Firefox和IE。
我們爲避免這種情況所做的工作是讓該方法異步工作,並在該時間間隔內回覆AJAX方法,以避免Chrome再次發出請求。
這個link詳細解釋了同樣的問題。
相關問題
- 1. 下載Facebook頁面悄悄話
- 2. Facebook發送悄悄話
- 3. 悄悄地發送密鑰
- 4. 使用Yammer Rest API向多個用戶發佈悄悄話API
- 5. 當頁面加載時發送悄悄電子郵件
- 6. 悄悄重定向
- 7. 悄悄地eval悄悄地vsim仍然回聲
- 8. 在WP8中悄悄發送短信
- 9. 發送悄悄話和Facebook白名單
- 10. javax.xml.parsers.DocumentBuilder悄悄解析不可能?
- 11. 如何悄悄地更新頁面標題與JS(在Rails中)
- 12. 準備悄悄話系統
- 13. 悄悄安裝.NET 3.5
- 14. 悄悄的MySQL源文件
- 15. 悄悄地導入rpy
- 16. ImportRange腳本悄悄地捕獲錯誤
- 17. VBA MkDir悄悄地刪除caron
- 18. 悄悄話不顯示舊數據
- 19. 悄悄地向Papertrail報告錯誤
- 20. Android。更新應用程序悄悄
- 21. Scrapy - 悄悄放下一個項目
- 22. 回報率 - 悄悄話回覆算法
- 23. twilio中的悄悄話消息php
- 24. 悄悄停止應用程序
- 25. Install4j悄悄更新主程序jar
- 26. 發佈到RabbitMQ悄悄地在父進程中失敗後分叉兒童
- 27. 問題發送悄悄話給Facebook好友與Facebook應用
- 28. Php圖api發送悄悄話給朋友
- 29. facebook api從fanpage發送悄悄話給「likers」
- 30. 檢索userId併發送悄悄話與linqtotwitter
謝謝你的洞察力。他們在Chrome上。從那以後,我們肯定會把客戶端和服務器端的保護放在一起;我只是想確保我知道整個畫面。 – cdutcher