AngularJS 在 IE11 中加载部分内容时访问被拒绝

AngularJS Access denied when loading partial in IE11

背景

我正在尝试开发一个 AngularJS 应用程序,该应用程序将作为 'offline html' 作为 Resco MobileCRM 软件的一部分进行托管。该软件通过其自己的 javascript 库提供对 CRM 数据的离线访问,并且运行良好。在检索和显示数据方面,我还能够让一个非常简单的 angularjs 应用程序运行。

AngularJS 应用程序使用 Resco 界面上传到 CRM,然后通过 resco 软件下载到每台客户端计算机。实际文件最终位于每台客户端计算机上的用户 AppData 文件夹中。

问题

当我使用 ngRouteui-router 向 angular 应用程序引入路由时,我收到 拒绝访问 错误。 resco软件使用底层浏览器,在我的例子中是IE11。我已将错误缩小到 angular 尝试加载路线的部分内容时。

违规代码如下(angular.js v1.3.15 9805 行)

  xhr.open(method, url, true);

根据我的研究,IE 似乎认为我正在尝试 CORS 请求,但我只是在尝试从磁盘加载文件。 各种帖子建议我将网站添加到 'Trusted Sites',但我实际上并没有访问另一个网站。我也不能在网络服务器上托管它,因为整个目的是让这个angular应用程序在Resco MobileCRM应用程序

中离线访问

如果我直接从那里导航到 AppData 文件夹和 运行 angularjs 应用程序,我 会得到同样的错误(即在 resco 应用程序中不是

其他帖子建议我需要用 XDomainRequest 替换 Angular 创建的 XMLHttpRequest 但我不愿意更改 angular 库,尤其是如果我不明白为什么。

如果有人能阐明为什么会发生这种情况以及如何解决它,我们将不胜感激。

我已经确认这在任何浏览器上都是不可能的。您不能对从磁盘本地提供的文件发出 xhr 请求。

我通过将我的 'partials' 加载到脚本标签并在指令中引用这些脚本标签的 ID 来解决指令的这个问题。

我没有尝试使用 ui.router 或 ngRoute,而是选择将我的应用程序重新设计为一些较小的应用程序,因为它们不需要共享任何上下文