我相信每个人都知道这种行为。 您填写网页上的表单,您提交。 提交后,你意识到你在一些错误的数据填补。 所以,你点击浏览器的后退按钮。 然后,有时形式仍然有您所输入的数据(你在这种情况下希望的),有时不是。
当它被清除,当不是我找不到任何连接。
一些答案我在网上/计算器发现:
- 对HTTPS连接,形式总是清零
- 使用带有会议动态网站时,形式总是清零
但他们两人都definatly错误。 我所看到的网站(如我自己的一个),它保存表单数据浏览器的后退之后,并使用HTTPS 和正在使用的会话。
所以请:有谁能够给我解释一下如何浏览器处理这个东西?
顺便说一句:我的任务是确保表单数据不被清除。
我不能提供对所有情景明确的答案。
作为Web开发人员,这里是我一般遵循我制定的网站,以实现不让用户丢失数据的目标的规则:
- 禁用您想要保留网页上的所有缓存(通过HTTP头)。
- 捕获所有的数据到会话(或其他临时存储)在提交表单时。
- 如果用户向后导航,浏览器请求的页面的新版本(因为你把它设置为永不缓存)。
- 该页面有逻辑地望向会话/数据库/何地重新填充基于上一输入状态的所有字段。 如果页面上有动态输入,你应该有足够的数据来重新创建它们。
- 一旦这个过程完成后,使用POST /重定向/ GET方式来清除会话数据,使之难以为用户能够回到原来的页面。
一些答案我在网上/计算器发现:
1. HTTPS连接,形式总是清零
2.使用与会话动态网站时,形式总是清零
我相信#1浏览器/安全设置/场景变化。
假设#2肯定不是在所有情况下(我刚才所描述的方式利用会议和动态表单)真。
它的浏览器的问题。 浏览器的行为不同的是点击后退按钮时。 这个问题在之前问这里点击浏览器的后退按钮时失去表单数据
我觉得很有趣,你提供的链接在此之前,一个要求,但一个说,它的这个人回答。 哦,没有公认的答案要么.....
文章来源: Why are HTML forms sometimes cleared when clicking on the browser back button