【问题标题】:php reload page without posting dataphp重新加载页面而不发布数据
【发布时间】:2010-11-07 14:22:12
【问题描述】:

我正在尝试刷新页面而不发送上次的 POST。

我试过了

window.open("postme.php?r=t", "_self");

它在末尾附加了一个?r=t,但它似乎并没有刷新页面,因为页面在一个目录中显示了许多文件,即使我已经移动或删除了它们也没有改变。

你能指定window.location.reload();中的URL吗?

有什么想法吗?

谢谢

【问题讨论】:

    标签: php javascript html refresh


    【解决方案1】:

    你可以试试:

    window.location.reload(true); //true sets request type to GET
    

    【讨论】:

    • 这似乎不起作用...仍然收到有关“Internet Explorer 需要重新发送您之前传输的信息”的警告
    • 你试过没有true,即window.location.reload()?
    • 这有点误导。 location.reload(true) 将在不使用缓存的情况下强制刷新位置,但这完全取决于浏览器。这没有标准。它肯定不会把POST 变成GET,就像location.reload(location.href)
    【解决方案2】:

    让这个工作......

    window.location = "postme.php?r=t";

    【讨论】:

      【解决方案3】:

      如果您想避免刷新报告数据(出于任何原因,包括用户单击重新加载按钮),请使用POST-REDIRECT-GET pattern

      【讨论】:

        【解决方案4】:

        我知道这已经晚了,希望它适用:我遇到了同样的问题,当有人确认他们的库存选择时,它会通过电子邮件发送订单 [或从库存数据库中减去],然后显示他们的订单。然后如果他们刷新,它会重新提交数据。所以我添加了一个 session_destroy()。但是当它们刷新时,会出现很多错误。

        SO - 我将代码分为 [a] 通过电子邮件发送库存数据库中的订单/减去,然后 [b] 使用 javascript "document.location.href='nextPage.php'"因为我有时会在使用 PHP 的“location(nextpage.php)”时遇到问题。无论如何,它会通过电子邮件发送信息,然后转到显示它的页面。然后可以刷新他们想要的所有内容,所发生的就是它一遍又一遍地显示。

        希望有帮助!

        【讨论】:

          【解决方案5】:

          嗯.. 我想也太晚了,但它可以帮助某人。我用过:

          window.location.href = window.location.href;
          

          代替 location.reload();这将刷新页面而不提示用户重新发送信息。

          【讨论】:

            【解决方案6】:

            使用完用户的 POST 数据后,将用户重定向到同一页面。

            $URI = $_SERVER['REQUEST_URI'];
            
            if(!empty($_POST)){
                //magic
            
                header("location:$URI");
            }
            

            现在当你刷新时,它不会有 POST 数据需要重新提交。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2021-12-23
              • 2012-12-15
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-01-07
              相关资源
              最近更新 更多