7

在我的项目中,我使用下面的 Javascript 代码 history.back(); 用于返回上一页。(如窗口上的后退箭头)。此功能在 IE 和 Firefox 上运行良好,但在 google crome 上不行?

<input type="button" value="Go back" onclick="history.go(-1); return false" />

我收到以下错误

确认重新提交表单

此网页需要您之前输入的数据才能正确显示。您可以再次发送此数据,但这样做会重复此页面之前执行的任何操作。按重新加载以重新发送该数据并显示此页面。

谷歌搜索但每个人都在建议 history.go(-1);return false; 但它也不起作用。也尝试过 history.back() 但这也无济于事

4

3 回答 3

6

上一页在 POST 请求之后显示(通常在提交表单时发生)。这意味着,要显示上一页,必须再次提交在 POST 请求中提交的表单数据。它与您的Javascript无关,history.go(-1)当您按下浏览器的后退按钮时也会发生。

您可以使用Post Redirect Get模式来解决此问题。

您也可以在表单上使用 GET 代替:

<form action="..." method="GET">

但是,不要将其用于在服务器上添加数据的表单,否则每次用户单击后退按钮并返回此页面时都会提交数据。另请参阅:何时应该使用 GET 或 POST 方法?

于 2013-06-20T09:07:58.253 回答
0

试试这个:

<script>
function goback() {
    history.go(-1);
}
</script>
<a href=”javascript:goback()”&gt;Back</a>

它适用于 Chrome 和其他浏览器。

以上是从以下逐字复制的:

http://simonthegeek.com/technical/history-back-problems-with-chrome-and-safari/

于 2015-11-18T11:26:56.893 回答
-1

我更喜欢客户端代码而不是骚扰我的服务器
我试过这个并且它适用于所有浏览器:

<button onclick="javascript:window.history.back()">Back</button>  

编辑
或者,您可以使用网络缓存来存储您的最后一页,然后您可以轻松地在该页面上重定向..

于 2013-06-20T09:16:28.673 回答