问题描述
我们在使用IE作为其浏览器引擎的Outlook加载项中得到unspecified error
。该错误来自我们的已编译的application.js javascript文件,该文件可追溯到Turbolinks。
当我们在Outlook加载项集成中加载应用程序时,会发生此错误。有一个加载页面可以确定用户是否需要登录,如果不需要,则将其重定向到我们的应用程序中。
解决方法
这是您数天或数周都不休的错误之一,然后证明是一条线的错误。
TLDR;
window.location.replace(url)
很危险,因为它不会更新历史记录。这意味着用户将无法单击后退按钮。但是,这也意味着使用诸如Turbolinks之类的框架来操纵历史,您必须要小心。
相反,请使用:
window.location.assign(url)
长话短说:
在我们的Outlook加载项的登录页面(用于确定是提示登录还是重定向到应用程序)中,我们使用的是window.location.replace
。由于某种原因(我无法完全解释),在应用程序加载时,Turbolinks处理会尝试在窗口的历史记录对象上调用“ replaceState”。
由于某些原因,当您访问的第一页以replace
重定向时,会出现一个空的历史记录,导致IE中出现unspecified error
。
解决方法是简单地做一个正确的历史记录,以使用location.assign(url)
添加重定向。