我的问题是,当以表单形式提交请求的页面返回到上一页时,浏览器会显示“页面已过期”的提示信息。
例如:
- 第一页:使用搜索条件提交表单(使用$_POST请求),跳转到第二页
- 第二页:接收$_POST请求并显示结果(包含用户链接的列表),跳转到第三页
- 第三页:显示用户个人资料
现在,当访问者在浏览器中点击“后退”按钮时,它将显示类似于“页面已过期”的内容。
相反,应该显示前一页而无需警告(即带有用户列表的第二页)。
你有什么解决这个问题的策略吗?
所以,你应该使用HTTP GET方法,而不是POST:POST应该用于创建或修改数据,GET应该用于获取某些数据。
或者,如果你有一些需要创建或修改数据的操作:
Location
HTTP头重定向到另一个页面。关于此,请参见维基百科上的Post/Redirect/Get页面。
这适用于PHP和IE8。
不仅必须将缓存设置为私有,而且必须删除4个缓存头,这只能通过PHP 5.3完成。在PHP 5.2中,如果使用Zend Framework的setHeader()方法,您只能将4个头设置为空值。由于某种原因,在IE8上将4个头值设置为空值不足够。以下是PHP 5.3的代码:
header_remove("Expires");
header_remove("Cache-Control");
header_remove("Pragma");
header_remove("Last-Modified");
在您发出的脚本中,发送一个指向接下来页面的Location
头。
not
标签操作符。xD - Alix Axel