Javascript IE在收到302后继续执行JS?
所以,我遇到了一个有点奇怪的问题,我希望有一些IE专家能够解释这种行为。我的公司运行实时电梯应用程序。我们使用comet模型在浏览器和服务器之间进行实时通信,这是Lift的标准。还值得注意的是:如果comets与服务器不同步(由于连接问题或服务器重新启动,任何可能会终止服务器上会话的事情),服务器将使用Javascript IE在收到302后继续执行JS?,javascript,internet-explorer,comet,lift,Javascript,Internet Explorer,Comet,Lift,所以,我遇到了一个有点奇怪的问题,我希望有一些IE专家能够解释这种行为。我的公司运行实时电梯应用程序。我们使用comet模型在浏览器和服务器之间进行实时通信,这是Lift的标准。还值得注意的是:如果comets与服务器不同步(由于连接问题或服务器重新启动,任何可能会终止服务器上会话的事情),服务器将使用document.location.reload()响应comet请求重新加载页面,启动新会话,等等 现在,为了确保正常注销,我们有一个特殊的url(/session/logout),它完成所有与
document.location.reload()响应comet请求
重新加载页面,启动新会话,等等
现在,为了确保正常注销,我们有一个特殊的url(/session/logout),它完成所有与会话相关的清理,然后将您踢回我们的主页。这可以通过单击指向该URL的锚来触发,或者如果您尝试执行要求您注销的操作,服务器可能会向您发出指向该URL的302。很简单,对吧?在大多数浏览器中,这非常有效,因为工作流如下所示:
document.location.reload()由于IE从未关闭过这些页面,因此从服务器上下载的代码>将中止主页加载,并且在用户未登录的情况下重新加载当前页面
以前有人遇到过这种问题吗?关于如何处理这个问题有什么建议吗?我对comet一无所知,但你应该更明确地说明comet的关闭
我建议捕获window.onbeforeunload事件并显式关闭comet,而不是依赖浏览器来完成这项工作。什么版本的IE?标准模式与否?IE8和IE9都在标准模式下运行,表现出这种行为。不幸的是,这不起作用。似乎是因为IE决定它实际上不想转到其他页面,所以onBeforeUnload没有被调用,我仍然看到重新加载行为(