8

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

我试过了

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

它将a 附加?r=t到末尾,但它似乎不会刷新页面,因为页面显示目录中的许多文件,即使我已移动或删除它们也没有更改。

可以指定网址window.location.reload();吗?

有任何想法吗?

谢谢

4

6 回答 6

6

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

于 2009-07-02T10:58:55.763 回答
3

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

$URI = $_SERVER['REQUEST_URI'];

if(!empty($_POST)){
    //magic

    header("location:$URI");
}

现在,当您刷新时,它不会重新提交 POST 数据。

于 2015-09-02T13:23:26.007 回答
1

你可以试试:

window.location.reload(true); //true sets request type to GET
于 2009-07-02T10:23:45.727 回答
1

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

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

希望有帮助!

于 2011-04-26T19:55:48.810 回答
1

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

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

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

于 2015-03-08T11:17:06.260 回答
-1

得到这个工作...

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

于 2009-07-02T10:57:08.203 回答