为了账号安全,请及时绑定邮箱和手机立即绑定

防止表格重新提交

防止表格重新提交

防止表格重新提交第一页包含一个HTML表单。第二页-处理提交的数据的代码。第一页中的表单将被提交。浏览器被重定向到第二页。第二页处理提交的数据。此时,如果刷新第二页,将弹出“确认表单重新提交”警报。这能防止吗?
查看完整描述

3 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

这里有两种人们常采用的方法:

方法1:使用Ajax+重定向

通过这种方式,您可以使用JQuery或类似于第2页的内容在后台发布表单,而用户仍然可以看到显示的页面1。成功发布后,将浏览器重定向到第2页。

方法2:后+重定向到自我

这是论坛上常见的技巧。第1页上的表单将数据发布到第2页,第2页处理数据并执行需要完成的操作,然后对自己执行HTTP重定向。这样浏览器记住的最后一个“动作”就是简单的页面2,所以表单不会在F5上重新提交。


查看完整回答
反对 回复 2019-07-03
?
慕容3067478

TA贡献1773条经验 获得超3个赞

看见这,这个)

PRG是一种Web开发设计模式,它防止一些重复的表单提交,这意味着提交表单(POST Request 1)->Redirective->GET(Request 2)

Under the hood

重定向状态码-HTTP1.0与HTTP 302或HTTP1.1与HTTP 303

带有重定向状态代码的HTTP响应还将在LocationHeader字段中提供一个URL。用户代理(例如,Web浏览器)被使用此代码的响应所邀请,以便对位置字段中指定的新URL发出第二个请求,否则是相同的请求。

重定向状态代码是为了确保在这种情况下,Web用户的浏览器可以安全地刷新服务器响应,而不会导致重新提交初始的HTTPPOST请求。

Double Submit Problem


Post/Redirect/Get Solution


来源


查看完整回答
反对 回复 2019-07-03
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

直接说,你做不到,这是件好事。浏览器的警报存在是有原因的。这个帖子应该回答你的问题:

防止后退按钮显示后确认警报

提出的两个关键解决方案是PRG模式和Ajax提交,然后是脚本重新定位。

请注意,如果您的方法允许GET而不是POST提交方法,那么这将解决问题并更符合约定。这些解决方案是在您希望/需要发布数据的前提下提供的。


查看完整回答
反对 回复 2019-07-03
  • 3 回答
  • 0 关注
  • 508 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信