我们的部分客户在我们网站上的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>
答案 0 :(得分:1)
当您尝试返回(通过浏览器的“后退”按钮)到仅POST
数据的页面时,通常会出现“网页已过期”消息。
基本上,想象一下,如果您尝试创建新用户。您的新用户表单会将用户名,密码和POST
用于创建用户页面。然后,此页面会将您转到欢迎使用网站页面。
如果您要回复,则您的浏览器会尝试将您转回创建用户页面。但是,您的浏览器会在此处识别出POST
个数据。
“网页已过期”是IE询问用户是否要重新提交表单(以及创建第二个用户)的方式,或者他们是否愿意在没有任何POST
变量的情况下重新加载页面。
如果您发送的数据很小(在这种情况下看起来只是一个数字),那么可能的解决方法是将此值传递给process.php
GET
而不是POST
。 GET
请求传统上不会创建或删除任何内容,因此您的浏览器可以第二次发送给您。