我正在编写简单的登录系统,我想执行“GET” self 重定向以避免在刷新时重新发送数据(POST-Redirect-GET 模式)。据我所知,有几种方法可以做到这一点:
-
header('Location:main.php');
echo '<body onload="window.location = \''.$HTTP_SERVER_VARS['PHP_SELF'].'\'">body</body>';
echo '<meta http-equiv="refresh" content="0;url='.$HTTP_SERVER_VARS['PHP_SELF'].'">';
有我的问题:
- 哪种方法最正确?
- 为什么 3. 方法不起作用?。它确实重定向但之后 当我点击“刷新”按钮时,我仍然得到“你想 重新发送数据”消息?
最佳答案
“最正确的”是 1.
因为那是 HTTP,只需确保您返回的是临时重定向代码,否则使用代理的用户最终将无法使用您的系统。其他两个依赖于浏览器实现(从技术上讲 1. 也是如此)并且不能保证工作。
但是,您应该考虑 4. 使用 AJAX 而不必担心上个世纪的问题。
关于php - 避免在页面刷新时重新发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29936478/