我正在尝试使用以下代码进行重定向:
<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
任何线索? 感谢
答案 0 :(得分:3)
尝试不使用window.
,这在我的案例中有所帮助。我曾使用location.assign()
代替window.location.assign()
并且工作。
答案 1 :(得分:2)
我做了同样的事情。一个快速补丁是使用 setTimeout 。
在重定向之前添加一点延迟答案 2 :(得分:0)
我有一个类似的问题,(但它在Firefox上也不起作用)。问题只是我忘了在{1>中添加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
对上述某些人有效。