我通过javascript触发页面重新加载,使用以下内容:
window.location.reload(true);
但是,在某些情况下(以前的回发),浏览器会给我以下警告:“要再次显示网页,网络浏览器需要重新发送您之前提交的信息......”。
是否有任何方法可以避免此消息并且无论如何都要进行回发,因为这可能会让用户感到困惑?如果我需要通过其他方式重新加载页面,那就这样吧。
答案 0 :(得分:6)
如果你想刷新页面而不包括发布数据,而不仅仅是回发试试
window.location = window.location.href;
答案 1 :(得分:2)
您尝试再次执行的请求是POST
请求,因此发出警告。您可以确保仅重新加载通过GET
请求获取的资源,或者 - 或者 - 通过<form>
方法提交隐藏的POST
(从而模拟重新加载保证不会高速缓存)。
您可能已经知道警告与HTTP动词中的idempotence(缺乏副作用)有关。 GET
(以及其他)(至少应该)被认为是幂等的,而POST
请求允许在服务器上进行更改。因此,客户端应提示用户验证他/她是否打算再次执行操作。
答案 2 :(得分:2)
在进行重新加载时,我认为没有任何方法可以在没有消息的情况下进行回发。
不过,重装是什么?如果是再次提交POST信息,我建议您使用javascript通过ajax或隐藏表单提交手动提交数据。答案 3 :(得分:1)
唯一的办法就是阻止它重新使用params。使用
window.location = window.location
答案 4 :(得分:0)
在页面内保留状态数据的一种方法是使用URL上的片段标识符,例如。 #filter1,#filter2,然后使用jQuery的方便hashchange插件执行代码(即,使用新的结果重新加载页面的相关部分)当url片段通过onhashchange事件更改时。它也很好,因为可以为不同的状态添加书签和缓存。
答案 5 :(得分:0)
后:
mysql_query("insert into table (id_item, quantity, cost) values($m, '$amount', '$cost')");
把:
header("Location: index.php");
然后使用jquery重新加载您的页面,您将无法获得“... Web浏览器需要重新发送信息...”警告。