1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > FORM表单防止重复提交的解决思路

FORM表单防止重复提交的解决思路

时间:2022-12-04 06:03:21

相关推荐

FORM表单防止重复提交的解决思路

现在分2种场景描述:

场景一、刷新页面,form表单内容被重复提交。

解决思路分2部分,前端页面和后端代码。

前端页面:在做from 表单提交的时候不使用原生的FROM html语法提交,定义一个js的function来获取数据进行提交。触发事件后,删除提交按钮上的from方法。

后端代码:防止重复提交。

方式一、代码提交的 Contraller处理完成后跳转到另一个请求的contraller,在新的contraller中跳转到新的页面。

方式二、在登录用户的Session中,放置一个随机数作为同步标记,并在初始化新增或编辑页面时就返回到前台页面中,用隐藏域赋值,当form被提交时,form中的同步标记就和Session中的同步标记作对比。在form首次提交的时候,这两个标记应该是一样的。如果标记不一样,那么该form就会禁止提交,一个错误就会返回给用户。在用户提交一个form时,如果按下浏览器中的后退按钮并尝试重新提交同一个form时,标记就会出现不匹配的现象。

另一方面,如果两个标记值匹配,那么我们就可以确信整个流程是正确的。在这种情况下,Session中的标记值就会被修改为一个新的值,同时允许提交该form。

还可以使用这个策略来控制对某些页面的直接访问,就好象上面资源保护中描述的一样。例如,假设一个用户将某个应用的页面A收藏到收藏夹中,而页面A 只允许通过页面B和C访问。当用户直接通过收藏夹来访问页面A,这时页面的访问顺序就是不正确的,这样同步标记将处在一个不同步的状态,或者它根本就不存在。不论怎样,访问都被禁止了。

场景二、同一个用户登录在不同的浏览器里,打开同一个from表单提交数据。

解决思路:暂时还没想好。谁能提供下解决思路。。。。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。