Chrome在浏览器后退按钮上悄悄地重新提交表单
Chrome quietly resubmitting form in iframe on browser back button
在一个房地产网站上,我正在工作,我有一个联系我们表单在属性详细信息页面上,用户可以点击联系我们按钮,这将加载表单在一个模态对话框,一个iframe加载联系我们表单,填写一些详细信息,并发送它。
一旦表单被处理了服务器端,我必须从服务器发出JavaScript代码,调用dialog close方法,然后将用户重定向到一个感谢页面(如果我在服务器上做了一个简单的重定向,iframe会得到我不想要的感谢页面)。
这个问题是在Chrome中,如果你点击浏览器的后退按钮,联系人表单被悄悄地重新提交。
注意:IE和Firefox根本没有这个问题。
我发现下面的链接很有用,但不是我问题的答案:
- https://productforums.google.com/forum/!主题/铬/J1KMARIIHW4
- https://code.google.com/p/chromium/issues/detail?id=263508(这个似乎非常接近我所看到的行为-但它似乎是一个在过去几年中不断重新出现的错误)
- Chrome在浏览器返回按钮上再次执行所有JS
我们已经尝试了各种技术来规避Chrome中的问题,如隐藏字段,保险缓存被关闭,在重定向到感谢页面之前破坏iframe。什么都没有,它会一直重新提交表单,甚至不问你是否想要重新提交(其实根本不应该重新提交)
刚刚遇到这个问题,我想做的是在表单中包含某种一次性令牌(即GUID),如果我们在服务器上重新检测,我们可以忽略表单帖子。可能使用服务器上的会话状态来保持跟踪-很像Rails的真实性令牌
相关文章:
- 提交评论不适用于新添加的帖子
- Ruby On Rails Ajax 提交提交两次
- 提交事件将打开新窗口
- 当以表单形式提交时,是否可以在PHP中访问新的数据* HTML5 / Javascript值?
- 选项卡在新窗口上提交表单,原因
- 提交表单的可能性(左-/中-/在新选项卡或窗口中打开-)单击html链接
- Javascript在新窗口中重新提交具有特定维度的表单
- 在提交时更改按钮颜色,直到输入新文本
- 提交表单后,打开一个新的选项卡
- Facebook-Can't提交新的Open Graph类型,提交为灰色.如何提交
- 如何在新窗口中提交表单,然后重定向父页面
- Javascript表单提交打开新窗口选项卡,然后重定向父页面
- 提交表单,然后打开新窗口并关闭弹出窗口
- 当我单击添加新列按钮时,表单会自动提交
- Ajax 提交重定向到新页面(不应该)
- 每次提交表单时都使用新名称创建对象
- 如何使用“打开新窗口”和“提交”
- 希望使用Angular将表单中的数据作为JSON数组中的新对象提交
- Keyup 13事件重复暗示提交-提交表单上的进入问题
- 通过Enter(特定的提交提交名称)提交