使用 windows.location.replace 刷新页面不适用于 URL 中的哈希值

发布于 2024-09-25 06:24:58 字数 482 浏览 2 评论 0原文

我有一个 AJAX 调用,它负责一些服务器端设置(我用它来登录、语言切换等)。当且仅当服务器端设置由于此调用而实际更改时,我想刷新当前页面(不重新发布 POST 表单数据,我们应该在 POST 之后立即进入页面)。 AJAX 回调中的一个简单的 JS 负责处理这个问题:

window.location.replace( window.location.toString() );

这工作得很好,直到我开始使用锚点。假设我的网址类似于 http://www.mysite.com/index/list#someplace< /a> 并执行上述以 window.location.replace 结尾的 ajax 调用,然后什么也没有发生。页面不会重新加载。到目前为止在FF3.6和IE7上进行了测试。

I have an AJAX call which takes care of some server side settings (I'm using this for login, language switches, etc.). If, and only if, server side settings are actually changed as a result of this call, I want to refresh the current page (without reposting POST form data, should we be on a page right after a POST). A simple JS in the callback of the AJAX takes care of this:

window.location.replace( window.location.toString() );

This worked fine, until I started working with anchors. Let's say my URL is something like http://www.mysite.com/index/list#someplace and I do the aforementioned ajax call ending with the window.location.replace, then nothing happens. The page does not get reloaded. So far tested on FF3.6 and IE7.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

另类 2024-10-02 06:24:58

您是否尝试过:

window.location.hash = ''; //if you want to reload with an empty hash
window.location.reload(true); //reload the page and bypass the cache

我们的网络应用程序使用单个网页,并且某些功能(货币、语言的更改......)可能会触发重新加载。

如果您想防止某些重新发布,您可以使用 cookie 来防止服务器做双重工作。

Did you try with:

window.location.hash = ''; //if you want to reload with an empty hash
window.location.reload(true); //reload the page and bypass the cache

We use a single web page for our web app, and some functionality(change in currency, language,...) could trigger a reload.

If you want to prevent some re-post you can use a cookie to prevent the server doing double work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文