javascript窗口重定向在chrome中不起作用((已取消) - 状态)

时间:2011-12-19 19:13:02

标签: javascript google-chrome redirect

我正在尝试使用以下代码进行重定向:

<script  type="text/javascript">
window.location.href = "http://google.com"
</script>

FF和IE可以正常工作。 Chrome没有。

上述http://google.com请求在Chrome浏览器中获得“已取消”状态&gt;开发工具&gt; “网络”。

我尝试了其他几个功能:

location.href = url
location.replace(url)
document.location = url
location.assign(url)
window.open(url, '_self')

在本地html文件中粘贴的相同代码可以正常工作。

以下是Chrome取消的重定向请求:http://pastebin.com/hD36M1RG

任何线索? 感谢

7 个答案:

答案 0 :(得分:3)

尝试不使用window.,这在我的案例中有所帮助。我曾使用location.assign()代替window.location.assign()并且工作。

答案 1 :(得分:2)

我做了同样的事情。一个快速补丁是使用 setTimeout

在重定向之前添加一点延迟

答案 2 :(得分:0)

我有一个类似的问题,(但它在Firefox上也不起作用)。问题只是我忘了在{中添加http://

window.location.href = `http://${ window.location.host }/pages/${ name }/`

答案 3 :(得分:0)

我遇到了类似的问题,问题是执行window.location.href = ...代码时提交表单的按钮。

我必须将type="button"放在按钮属性中,以防止其提交。

答案 4 :(得分:0)

使用 setTimeout 对我有用,我正面临vue-router的这个问题,试图重定向到“ beforeEach”挂钩中的身份验证页面。

答案 5 :(得分:0)

我在这里遇到有关vue的问题。使用vue.nextTick(函数()())解决它。

Vue.nextTick(function () {
   window.location.href="/***/****_view.action
})

答案 6 :(得分:0)

Chrome 似乎希望在重定向或重新加载页面之前先完成部分(或全部)未完成的 AJAX 调用,因此值得检查您的流量。

对我来说,这是因为 setInterval 函数中同时发送了多个 AJAX 请求,以高速执行。 我必须 clearInterval 才能使 window.location.href 请求不被取消。

这可以解释为什么 setTimeout 对上述某些人有效。