在Javascript中,我可以在表单提交后“清除”浏览器(history -1)吗?
In Javascript, can I “clear” the browser (history -1) after a form submission?
我有一个包含两个页面的网站:页面A带有表单和提交按钮;页面B显示基于页面A中的数据的计算结果。
我想用 POST 提交表单数据,这样我就不能使用 $.post 或其他任何东西;
我不能使用 document.location.replace('ULRPageB?param1=value1&...¶mN=valueN'),因为参数必须从查询字符串中隐藏。
但我必须确保,如果用户从页面 B 单击浏览器的 BACK 按钮,他会后退两页,而不仅仅是一页。
假设不能修改:换句话说,问题是:
存在一种方法来对servlet执行GET而不是AJAX,替换历史记录:是document.location.replace。
是否存在一种等效的方式来对替换历史记录的 servlet 执行 POST 而不是 AJAX?
有 Post/Redirect/Get 模式
- 浏览器使用 HTTP POST 提交表单。
- 服务器设置位置 HTTP 响应标头字段。
- 浏览器向位置 HTTP 响应标头字段中提到的页面发出 HTTP GET 请求
这使得后退按钮的行为更加用户友好,因为它不会返回到接受 POST 的页面(因此没有"POST 数据已过期"警告,也没有意外重复提交)。相反,后退按钮返回到显示表单的页面。
在此方案中,后退按钮在技术上返回两页。如果你想再往后退一页:不要这样做,它会让你的用户感到不安。
相关文章:
- 访问布局信息是否也会导致浏览器重排
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- 有时数据是't显示在浏览器中
- 使图像在单击时展开到不大于浏览器
- 在浏览器返回时使window.history.state null的可能情况是什么
- 在Javascript中,我可以在表单提交后“清除”浏览器(history -1)吗?
- 更改 History.js for HTML4 浏览器的行为
- history.forward() 在浏览器中不起作用
- 当浏览器不支持HTML5历史API时,有条件地通过ajax加载history.js
- History.go(-1)在不同浏览器中的行为
- window.history.back()在IE浏览器的Iframe中
- window.history.pushState刷新浏览器
- 浏览器的后退按钮显示奇怪的行为.History.js
- onClick =“history.go(0)“;不能在mozilla中工作,但在IE中工作.如何在mozilla浏览器
- 从浏览器历史记录重建页面的推荐方法是什么?(History.js + Rails 3)
- JQuery History.js插件在HTML4和HTML5浏览器中都不替换一个页面的状态
- 如何设置浏览器为history.pushState显示的条目的标题
- PHP/Javascript:History.go(-1)不工作,浏览器返回
- History.pushState 浏览器后退和前进按钮失败