通过javascript重新加载页面:避免“回发”警告

我正在通过javascript触发页面重新加载,使用以下内容:

window.location.reload(true); 

但是,在某些情况下(以前的回发),浏览器会给我以下警告:“要再次显示网页,网络浏览器需要重新发送您之前提交的信息……”。

有没有办法避免这个消息,只是做回发,因为这可能会让用户感到困惑? 如果我需要通过其他方式重新加载页面,那就这样吧。

在进行重新加载时,我认为没有任何方法可以在没有消息的情况下进行回发。

顺便问一下,重装是什么? 如果是再次提交POST信息,我建议您使用javascript通过ajax或隐藏表单提交手动提交数据。

如果你想刷新页面而不包括发布数据而不仅仅是回发试试

 window.location = window.location.href; 

您尝试再次执行的请求是POST请求,因此警告。 您可以确保仅重新加载通过GET请求获取的资源,或者 – 通过POST方法提交隐藏的

(从而模拟重新加载保证不会被缓存)。

您可能已经知道警告与HTTP谓词中的幂等性 (缺乏副作用)有关。 GET (以及其他)是(应该至少)被认为是幂等的,而POST请求允许在服务器上进行更改。 因此,客户端应提示用户validation他/她是否打算再次执行操作。

唯一的办法就是阻止它重新使用params。 使用window.location = window.location

保持页面内的状态数据的一种方式是使用URL上的片段标识符,例如。 #filter1,#filter2,然后使用方便的hashchange插件为jQuery执行代码(即,使用新的结果重新加载页面的相关部分)当url片段通过onhashchange事件更改时。 它也很好,因为可以为不同的状态添加书签和缓存。

http://benalman.com/projects/jquery-hashchange-plugin/

后:

 mysql_query("insert into table (id_item, quantity, cost) values($m, '$amount', '$cost')"); 

放:

 header("Location: index.php"); 

然后使用jquery重新加载您的页面,您将无法获得“… Web浏览器需要重新发送信息…”警告。