我尝试在PHP中实现POST/REDIRECT/GET设计模式,在Safari上可以正常工作,但当我重定向到完全相同的页面时,Google Chrome(Mac版)不能正常工作。如果稍微变化一下URL(例如添加一个末尾斜杠),就可以正常工作。
这里是一个完全可用的示例:
<?php
if(TRUE === isset($_POST['submit'])) {
header('Location: http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'], true, 303);
exit();
}?>
<html><head></head><body>
<form action="" method="post"><input type="submit" name="submit" value="submit" /></form>
</body></html>
当我进入页面,点击提交按钮并刷新页面时,会弹出对话框询问我是否确认重新提交表单数据。我的所有搜索结果都表明上述代码是实现POST/REDIRECT/GET的正确方式,并且应该可以正常工作(在Safari中确实如此),但在Mac的Chrome浏览器中却无法正常工作。