您的位置:首页 > 理论基础 > 计算机网络

利用http302临时重定向实现不可重入地址的后退

2008-09-03 17:11 295 查看
在网站开发中,我们不可避免的要使用post以提交数据,如表单提交,积分修改等,首先,我们需要明确的是:post在什么情况下是必须的:

涉及数据修改等不可重入地址的情况下,应是使用post的。

但是在ie等浏览器下,post数据后,用户点击后退,页面会回到一个提示用户已经过期的页面,用户再度刷新,数据又被post了一次,这就是不合理的了。

那么,我们用什么方法解决了,刚好,浏览器和http协议给我们提供了一个302,临时重定向的功能,我们就能够很好的避免用户后退过程中,再度刷新页面的问题了。

一个原理图如下:



以上是正确的程序走向,但是用户能看到的就只是1,3,4这三个页面,同时,因为你告诉浏览器了你用的是302,浏览器会认为2这个页面不存在,用户后退就只能从4到3到1,避免数据重复提交,同时也解决用户不能后退体验不好的问题。



看吧,浏览器给出响应是302



后退按钮是灰的,说明浏览器根本就不知道有http://localhost/study/header.php这个程序

其中这个程序应该在2中处理好post投过来的数据之后输出,如下

<?php

/*处理post的数据,出来结束后输出一下代码*/
header("Location: http://www.pcw.com.cn/");

exit;
?>

ok,明白了吧,没有明白给我qq:187349483,大家好好讨论啊
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: