Question
在Web应用中,采用POST提交信息是非常常见的,然而如果目标页面打开得太慢,用户就可能会刷新页面,这时候之前已经提交过的信息就会被重复提交。即使用户成功打开了POST提交目标页,之后他通过链接导航到别处了,再退回到POST提交目标页时仍可能会重复提交页面(例如因为浏览器缓存已失效)。而且,只要碰到重复POST提交的场景,浏览器就会问用户是否确认重做此操作,用户并不一定能正确理解重做意味着重做什么,浏览器又不允许网站向用户解释清楚,所以这属于非常不友善的设计。那么我们应该如何避免用户刷新带来的重复提交呢?
Answer
有一种最简单的模式能够解决这个问题,叫做PRG,也就是Post-Redirect-Get。在用户提交信息后,我们不要在POST提交的目标URL返回结果页面,而返回一个302将浏览器重定向到真正的结果显示页,然后浏览器通过GET去获取那个页面。
这样做的话,用户刷新结果页,或者通过历史记录回到该页面,都不会导致浏览器要重新进行POST,自然也就不会出现烦人的是否重做对话框了。而对于你来说,也有效避免了用户重复提交信息的可能性。
在Web应用中,采用POST提交信息是非常常见的,然而如果目标页面打开得太慢,用户就可能会刷新页面,这时候之前已经提交过的信息就会被重复提交。即使用户成功打开了POST提交目标页,之后他通过链接导航到别处了,再退回到POST提交目标页时仍可能会重复提交页面(例如因为浏览器缓存已失效)。而且,只要碰到重复POST提交的场景,浏览器就会问用户是否确认重做此操作,用户并不一定能正确理解重做意味着重做什么,浏览器又不允许网站向用户解释清楚,所以这属于非常不友善的设计。那么我们应该如何避免用户刷新带来的重复提交呢?
Answer
有一种最简单的模式能够解决这个问题,叫做PRG,也就是Post-Redirect-Get。在用户提交信息后,我们不要在POST提交的目标URL返回结果页面,而返回一个302将浏览器重定向到真正的结果显示页,然后浏览器通过GET去获取那个页面。
这样做的话,用户刷新结果页,或者通过历史记录回到该页面,都不会导致浏览器要重新进行POST,自然也就不会出现烦人的是否重做对话框了。而对于你来说,也有效避免了用户重复提交信息的可能性。
标签:
用户刷新,POST,重复提交
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“十分钟内学会 避免用户刷新导致重复POST提交”评论...
更新动态
2024年04月29日
2024年04月29日
- 群星《勃拉姆斯钢琴四重奏全集1-3》[FLAC/分轨][546.47MB]
- 飞跃虹镜什么时候上线 国服公测时间预测
- 七日世界阿尔法收容井在哪 位置及玩法介绍
- 原神4.6版本隐藏锚点开启攻略 从大海到大海成就
- dnf无敌药水什么名字
- 物华弥新换位置方法分享 物华弥新怎么换位置
- 物华弥新迷踪盘第15关怎么过 迷踪盘第15关通关方法
- win7怎么更换激活码,win7更改激活码
- 电脑怎么安装安卓系统不卡的,电脑怎么安装安卓系统软件
- 《天国拯救2》实体版已经在亚马逊等网站上开启预购
- Vandal爆料称 已获悉了Nintendo Switch 2的相关信息
- 打卡爱好者福音 收藏类游戏《Check in》登陆Steam
- 谈诗玲.2019-月情思曲【豪记】【WAV+CUE】
- 陈淑桦-试音陈淑桦24K金碟-正版原抓WAV+CUE.
- 韩宝仪《痴心的小妹》(24K黄金首版)WAV