如何停止浏览器前进按钮重定向到页面?

时间:2013-08-01 10:08:28

标签: javascript caching browser coldfusion

我有一个简单的“服务请求表”,用户可以使用它来请求不同的服务。没有会话或登录概念。

现在

  1. 单击“服务请求表单”上的“提交”按钮,会将用户重定向到“Thank-you.cfm”页面。

  2. 如果用户按下浏览器后退按钮,则表单会再次显示所有字段为空。

  3. 现在,当用户点击浏览器转发按钮时,它会再次显示Thank-you.cfm页面。

  4. 我不想再单击浏览器转发按钮向用户显示“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)#">
    

    怎么做?

3 个答案:

答案 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页面