使用 windows.location.replace 刷新页面不适用于 URL 中的哈希值
我有一个 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您是否尝试过:
我们的网络应用程序使用单个网页,并且某些功能(货币、语言的更改......)可能会触发重新加载。
如果您想防止某些重新发布,您可以使用 cookie 来防止服务器做双重工作。
Did you try with:
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.