通过 JS 片段刷新页面

Refreshing page via JS snippet

在 Firefox 中测试一种无需缓存重新加载 HTML 页面的方法时,我在我的代码中包含了以下代码片段:

<script>
window.setTimeout(function () {
    location.reload(false);
}, 5000);
</script>

这会在 5 秒后重新加载页面,但我会看到提示:"To display this page, Firefox must send information that will repeat any action (such as a search or order confirmation) that was performed earlier."

如果有一种方法可以通过 Javascript 进行静默刷新,而不显示任何提示?例如,如果我使用 refresh Meta tag (HTML),我的浏览器会自动刷新。我想要近似相同的体验,但是通过 JS(并且没有缓存)。顺便说一句,我的是一个 Django 网络应用程序,我在我的 Django 模板中注入了 JS 代码。

您尝试过 location.reload(正确)吗?如果设置为 true,它将始终从服务器重新加载。设置为 false 它将首先查看缓存。

您收到此提示是因为您要求重新加载 POST 请求。重新加载 POST 请求时,您应该始终收到此提示,因为它不是 safe method

但是,如果您愿意,可以明确地重新发送 POST 请求(尽管您可能很难找回之前发送的 POST 数据)。或者明确地向同一个 URL.

发送 GET 请求

这是防止人们多次提交表单信息的标准行为(例如,防止电子商务系统中的双重支付)。尝试让 Javascript 指向 'new' 页面:

尝试使用它,将 url 设置为您自己的;

window.location = "my.url/index.html?nocache=" + (new Date()).getTime();

从这里借来的答案,其中还给出了为什么这样做的解释 ->