javascript - Firefox:iframe 中的 AngularJS 应用程序抛出 nsresult: "0x80004005 (NS_ERROR_FAILURE)"错误

标签 javascript angularjs firefox iframe

当我在页面上的 iframe 中打开一个 angularjs 应用程序时,一切在所有浏览器上都运行良好。但是在 firefox 中,如果我使用 ctrl+f5 刷新,我会得到这个非常讨厌的错误,它以 nsresult: "0x80004005 (NS_ERROR_FAILURE)"location: "JS frame"...

请看图:(不知道你能不能看懂) error

可以自己测试,打开链接https://www.ipushpull.com/embed/SCAR/Alpine在 firefox 中,您应该会看到登录表单,按 ctrl+f5,您应该会看到错误。

其他浏览器没问题。

我很少看到其他讨论,有人提到这可能是因为 CORS 请求(我正在使用),我认为这不太可能,因为其他请求在同一页面上的 Firefox 中工作正常(当您打开 taht 页面时,它会发出请求返回它应该返回的 api)

其他人提到它与窗口历史记录有关,这可能是因为一旦您到达该链接并且 API 返回 403,它会将您重定向到 Angular uri #/user/login ,但我没有找到任何我可以尝试的解决方案走出历史。

有什么想法吗?非常感谢

更新

我看到你无法打开图像,这里是“全分辨率”:http://i.stack.imgur.com/7SYQ8.jpg

更新 2

  1. 这不是由于 CORS 问题。我在整个网站上使用 CORS 没有问题,即使在同一个页面上有其他 CORS 请求,它们也能正常工作。

  2. 这不是由任何 adblock/popupblock 插件引起的,我在完全清除的浏览器中尝试过。

  3. 使用非缩小 Angular 进行调试 - 实际上我不认为这对调试很重要(因为我对 Angular 有信心),但请问是什么。如果我更改为未缩小的 Angular 错误不会发生..有什么想法吗?

最佳答案

我在尝试使用 iframe 中的 history.pushState(Ember Router location: 'history' 路由方法)打开 Ember 应用程序时遇到了类似的问题。似乎只有在 Firefox 中执行硬刷新(在 Mac 上为 cmd + shift + r 或在 Windows 上为 ctrl + f5)时才会出现此问题。这个问题只发生在我的 FireFox 中,在 Chrome 和 Safari 中工作正常,具有类似的硬刷新。我还验证了我在 FireFox 的 iframe 中使用 $locationProvider html5mode(它也在后台使用 history.pushState)打开 Angular JS 应用程序时也会出现这个问题。

第一次导航到该页面或正常刷新页面(cmd + r Mac,f5 Windows)时,我没有遇到此问题。我在 Bugzilla for Mozilla 上发现了很多看似相关的内容,但很多都很接近。这似乎代表了我遇到的相同问题,并且在当前版本的 Firefox(撰写本文时为 v37.0.1)时仍然处于打开状态。

https://bugzilla.mozilla.org/show_bug.cgi?id=1003100

在使用基于散列的路由的 iframe 中打开 Ember 或 Angular 应用程序(或任何技术...)目前看来是一个可行的解决方法。对于任一框架,我都无法使用基于哈希的路由方法重现该问题。

关于javascript - Firefox:iframe 中的 AngularJS 应用程序抛出 nsresult: "0x80004005 (NS_ERROR_FAILURE)"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28437566/

相关文章:

javascript - Angular 根据状态添加主体类

javascript - 如何通过AngularJS中的ng-repeat动态创建的id获取元素

php - 唯一标识一台计算机

javascript - 通过 URL 查询进行表单控制

javascript - typescript:使用 typescript 和 webpack 2 解析 typeahead.js

javascript - 即使在 false 上,Cordova 相机也会保存到画廊

javascript - 取消以下 'then' 函数中的 $timeout 是否有效?

javascript - 在 Ionic/Angular JS 中删除基于侧菜单的模板中的导航栏

jquery - 如何在 Windows 上的 Firefox 中阻止 Flash 内容通过 jQuery UI 对话框闪耀

javascript 在 IE 中慢,但在 Firefox 中快