我尝试在 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。
最佳答案
您的代码似乎没问题,我猜您遇到的问题与 Issue 177855: Wrong handling of Redirection in Chrome 25 有关
关于PHP 发布/重定向/使用 Google Chrome 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15332140/