我有一个简单的“服务请求表”,用户可以使用它来请求不同的服务。没有会话或登录概念。
现在
单击“服务请求表单”上的“提交”按钮,会将用户重定向到“Thank-you.cfm”页面。
如果用户按下浏览器后退按钮,则表单会再次显示所有字段为空。
现在,当用户点击浏览器转发按钮时,它会再次显示Thank-you.cfm页面。
我不想再单击浏览器转发按钮向用户显示“Thank-you.cfm”页面。我也在清除此页面上的缓存。
为了清除缓存我正在使用此代码
<cfheader name="cache-control" value="no-cache, no-store, must-revalidate">
<cfheader name="pragma" value="no-cache">
<cfheader name="expires" value="#getHttpTimeString(now()-1)#">
怎么做?
答案 0 :(得分:3)
如果你继续沿着这条路走下去,我想你会遇到麻烦。昨天你问how to change the default behavior of the browser back-button,今天你问的是如何更改浏览器前进按钮的默认行为。所有浏览器都具有这些功能,并且(我相信)它们的设计旨在使用户受益。虽然我同意这些功能已经让动态网站(以及我们开发人员)多年来头痛,但我不同意你应该尝试改变他们的行为。相反,你需要优雅地处理这种行为。
你的任何一篇文章都不清楚你在追求什么。我的假设是你想避免重复发布你的表格数据(正如彼得在你的另一个问题中提到的那样)。如果是这种情况,那么你应该检查提交的信息是否已经提交,如果是这样的话,也要向用户发布相应的信息(再次像彼得已经在你的另一个问题中提到的那样)。
在我看来,试图改变这些功能的工作方式会让你感到困惑。这类似于改变方向盘在所有车辆中的工作方式。向左转动方向盘时的默认行为是汽车向左转,我想让它向右转......
答案 1 :(得分:0)
如果您可以支持IE10 +,则可以使用HTML5 History API。
例如window.history.replaceState()
方法。
答案 2 :(得分:0)
如果传递了帖子数据,则只显示页面,否则重定向。
之前我没有使用过coldfusion所以我对代码不能帮助你太多,但我猜这将是最好的概念。
这样,除非有有效的帖子数据,否则没有人能够进入Thank-you.cfm页面