Chrome在浏览器后退按钮上静静地重新提交iframe中的表单

Jac*_*ues 5 javascript asp.net-mvc iframe google-chrome form-submit

在我正在处理的房地产网站上,我在"房产详细信息"页面上有一个"联系我"表单,用户可以单击"联系我们"按钮,这将在模式对话框中加载表单,iframe加载联系我们表单,填写在一些细节和发送它.

一旦表单处理完服务器端,我必须从调用dialog close方法的服务器发出JavaScript代码,然后将用户重定向到感谢页面(如果我在服务器上做了一个简单的重定向,iframe会得到谢谢你我不想要的页面).

问题出现在Chrome中,如果您点击浏览器的后退按钮,则会安静地重新提交联系表单.

注意:IE和Firefox根本没有这个问题.

我发现以下链接很有用,但不是我的问题的答案:

我们已尝试各种技术来规避Chrome中的问题,例如隐藏字段,保险缓存已关闭,在重定向到感谢页面之前销毁iframe.在没有询问您是否要重新提交的情况下,它一直没有重新提交表单(而不是它应该重新提交)

Dun*_*art 0

刚刚遇到这个问题,我想做的是在表单中包含某种一次性令牌(即 GUID),如果我们在服务器上重新检测,我们可以忽略表单帖子。可能使用服务器上的会话状态来跟踪 - 很像Rails 真实性令牌