Javascript 如果浏览器不询问我是否要重新发送,我如何刷新网页

Javascript 如果浏览器不询问我是否要重新发送,我如何刷新网页,javascript,Javascript,我得到以下代码来刷新我的网页。如果我不在POST中提交任何内容,效果会很好,但如果我提交了,当我的网页刷新时,我会从浏览器中收到一条消息(见下图) 我不是在寻找浏览器设置的调整。我正在寻找替代代码来刷新而不必询问。 解决办法:不要发帖。GET应该是幂等的(取决于环境的变化),POST应该是一个修改 发布后,您应该立即执行GET以使用发布结果重新加载页面。然后你可以随意刷新 例如: 第1.html页 <form method="POST" action="go.php"> ... &

我得到以下代码来刷新我的网页。如果我不在POST中提交任何内容,效果会很好,但如果我提交了,当我的网页刷新时,我会从浏览器中收到一条消息(见下图)

我不是在寻找浏览器设置的调整。我正在寻找替代代码来刷新而不必询问。

解决办法:不要发帖。GET应该是幂等的(取决于环境的变化),POST应该是一个修改

发布后,您应该立即执行GET以使用发布结果重新加载页面。然后你可以随意刷新

例如:

第1.html页

<form method="POST" action="go.php"> ... </form>
。。。
go.php:

<?php
    // do stuff...
    header('Location: http://www.foo.com/page2.html');
?>

第2.html页:

<script type="text/javascript"> location .reload (true); </script>
location.reload(真);

这是由于
POST
而不是
GET
请求页面造成的。刷新将重新提交
POST
数据。您可以使用
window.location=window.location.href


如果您希望允许用户通过其浏览器控件重新加载页面,则需要实现,它会在
POST
之后重定向到
GET
,这将请求页面而不是重新加载

window.location = window.location;

这是在浏览器端控制的,而不是你的(即你无法控制它)。如果您想向用户显示一个可以在不使用repost选项的情况下刷新的页面,则必须通过在post之后重定向到使用GET not a post检索的页面来完成


尝试javascript重定向。或者,使用AJAX发布信息,这意味着刷新将重新加载原始页面,而不是AJAX发布的结果。

您可以将数据保存到window.name并使用window.location=window.location.href技巧。当onload时,检查window.name中是否有数据,将其取回并从中删除。在这种情况下,我经常使用window.name作为“会话”存储。

(我会说西班牙语,我会尽全力) 在我的例子中,我有一个按钮可以在数据库中查找打开的票证,因此,每当我想知道是否有新的票证时,我都需要按下该按钮,我使用下一个javascript函数解决了这个问题

<script type="text/javascript" language="javascript">  
    setTimeout('document.getElementById("btn_busca_ticket").click()', 10000);
</script>

setTimeout('document.getElementById(“btn\u busca\u票证”)。单击(),10000);
其中10000是每次刷新之间的时间(10秒)

如果没有按钮,可以创建一个带有ID和submit的隐藏按钮
(它不是很优雅,但对我来说很有用)

这很有效,但它不记得我的变化。如果有办法将请求参数添加到末尾或其他地方,以便刷新后它记住我的设置如果您使用的是可以通过ViewState实现的ASP.NET,则必须手动执行。“Web是无状态的”这可以工作,但它不记得我所做的更改。如果有办法将请求参数添加到末尾或其他地方,以便在刷新后记住我的设置,您指的是javascript还是PRG模式?正在丢失的信息是正在发布的信息,即提示所指的信息。JavaScript无法访问以前发布的信息。如果实现PRG模式,您可以将所有发布的信息添加到查询字符串中,或者通过JavaScript重新提交表单。您需要考虑,如果您重新提交表单,那么它将包含任何用户更改,因此(我猜)它不是您真正想要做的。
<script type="text/javascript" language="javascript">  
    setTimeout('document.getElementById("btn_busca_ticket").click()', 10000);
</script>