PHP 发布/重定向/使用 Google Chrome 失败

标签 php google-chrome post-redirect-get

我尝试在 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/

相关文章:

php - 使用 DOJO 自动完成文本框

php - htaccess 重写如果重定向的文件存在

PHP 脚本未返回预期的 JSON 响应

css - 与 Chrome 中的预期结果相比,Firefox 中的奇怪 CSS 结果(一些 div 未对齐但向下移动)

PHP - 在循环中添加分隔符

php - 意外的 token 非法多行字符串 javascript+ php

ajax - firefox中的跨域ajax

c# - ASP.NET MVC 中的发布/重定向/获取模式

form-submit - 如何使用 Python 在 Google App Engine 上实现 Post-redirect-get?

java - Struts2 动态表单流