Javascript重定向或重新加载

时间:2015-10-26 14:12:40

标签: javascript

我有一个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);
}

我想做的就是强制浏览器重定向到目标网址,或者根据当前网址与预期网址重新加载当前网页。

3 个答案:

答案 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;