我有以下代码来刷新我的网页。如果我不通过POST提交任何内容,它会很有效但如果我这样做,我会在网页刷新时从浏览器收到消息(见下图)
location.reload(true);
我没有寻找浏览器设置调整。我正在寻找替代代码来刷新而不问。
答案 0 :(得分:20)
这是由POST
而不是GET
请求的网页引起的。刷新将重新提交POST
数据。您可以使用window.location = window.location.href;
强制获取。
如果您想让人们通过浏览器控件重新加载页面,那么您需要实现PRG pattern,GET
后重定向到POST
。
答案 1 :(得分:3)
这将请求页面而不是重新加载。
window.location = window.location;
答案 2 :(得分:2)
解决方案:不要POST。 GET应该是幂等的(直到环境变化),POST应该是一种修改。
在POST之后,您应该立即执行GET以使用POST结果重新加载页面。然后你可以随意刷新。
示例:
page_1.html
<form method="POST" action="go.php"> ... </form>
go.php:
<?php
// do stuff...
header('Location: http://www.foo.com/page2.html');
?>
page2.html:
<script type="text/javascript"> location .reload (true); </script>
答案 3 :(得分:0)
这是在浏览器端控制而不是你的(即你无法控制它)。如果您想向用户显示一个可以在没有重新发布选项的情况下刷新的页面,则必须通过重定向将该帖子发送到您使用GET而不是POST检索的页面。
尝试javascript重定向。或者,使用AJAX POST信息,这意味着刷新重新加载原始页面,而不是你的ajax帖子的结果。
答案 4 :(得分:0)
您可以将数据保存到window.name并使用window.location = window.location.href技巧。当onload时,检查window.name中是否有数据,将其取回并从那里删除。我经常在这种情况下使用window.name作为“会话”存储。
答案 5 :(得分:0)
(我是西班牙语演讲者,我会尽我所能) 在我的情况下,我有一个按钮来查找数据库中的打开票据,因此,每次我想知道是否有新的时候我需要按下该按钮,我解决了下一个javascript函数
<script type="text/javascript" language="javascript">
setTimeout('document.getElementById("btn_busca_ticket").click()', 10000);
</script>
其中10000是每次刷新之间的时间,(10秒)
如果您没有按钮,则可以创建一个带有ID和提交的隐藏按钮 (它不是那么优雅,但对我有用)