0

我们的一些客户在我们网站的 IE8 中遇到“网页已过期”错误。我自己在 IE8 中尝试过,但没有任何问题,并且听说这可能与在 Internet 选项下选中“不将加密的页面保存到磁盘”有关。我在浏览器上启用了此功能,但仍然无法复制问题。

有问题的页面有一个表单,该表单由 javascript 自动提交,然后用 PHP 处理。然后它在处理后重定向到另一个页面。这里有什么可能是问题的根源吗?

谢谢!

<script language="JavaScript" type="text/JavaScript">
function doSubmit()
{
this.document.autoForm.submit();
}
//-->
</script>
</head>

<body onLoad="window.setTimeout('doSubmit()', 1000)">
<form name="autoForm" method="POST" action="process.php">
<input type="hidden" name="handlerID" value="1">
</form>
4

1 回答 1

1

当您尝试返回(通过浏览器的“返回”按钮)到您刚刚POST编辑数据的页面时,通常会出现“网页已过期”消息。

基本上,想象一下如果您尝试创建一个新用户。您的新用户表单获取用户名、密码并将POST其发送到“创建用户”页面。然后,此页面会将您转到“欢迎访问站点”页面。

如果您要回击,您的浏览器会尝试将您发送回“创建用户”页面。但是您的浏览器会识别出您只是POST在此处编辑数据。

“网页已过期”是 IE 询问用户是否愿意重新提交表单(并创建第二个用户),或者他们是否愿意在没有任何POST变量的情况下重新加载页面的方式。


你如何解决这个问题?

如果您发送的数据很小(在这种情况下它看起来只是一个数字),那么可能的解决方法是将这个值传递给process.phpwithGET而不是POST. GET请求传统上不会创建或删除任何内容,因此您的浏览器可以再次将您发送到那里。

于 2013-04-02T13:30:45.257 回答