我有一个ajax方法,通过ajax提交数据。然后,服务器以URL加载响应。大多数情况下,URL与发出请求的URL不同,但有时URL也是相同的。
无论哪种方式,我都希望页面转到目标网址,即使它只是重新加载页面。
我尝试了window.location.href = ''
方法,但如果当前网址与预期网址相同,则不会发生任何事情。
我已经尝试了window.location.replace(url)
方法,但是如果当前===意图,则不会重新加载页面。
我尝试了window.location.reload(true)
方法,但只有当前网址与目标网址相同时才有用。
我尝试将目标网址与当前网址进行比较,然后执行重新加载或href
方法,但这也存在问题。如果我单击引导选项卡,则哈希不会出现在URL中,因此current url
值实际上不正确。
供你参考,这是我的比较:
if(window.location.href === response.intended) {
window.location.reload(true);
} else {
window.location.replace(response.intended);
}
我想做的就是强制浏览器重定向到目标网址,或者根据当前网址与预期网址重新加载当前网页。
答案 0 :(得分:3)
要确保您的网页未被缓存,请在网址末尾添加一个随机数:
window.location.replace(response.intended + "?rnd" + Math.random() );
答案 1 :(得分:1)
将window.location.hash
添加到新网址进行比较。如果没有,它将返回一个空字符串
if(window.location.href === response.intended + window.location.hash) {
答案 2 :(得分:0)
正如在评论中所讨论的,我认为这是由于网址中的#
字符,这使得浏览器移动到页面的特定部分,如<a href='33347913'>
标记。
var index = response.intended.indexOf('#');
if(index >= 0) {
response.intended = response.intended.substr(0, index);
}
window.location.href = response.intended;