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

时间:2015-04-09 05:48:47

标签: angularjs internet-explorer xmlhttprequest

背景

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

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

问题

当我使用ngRouteui-router将路由引入角度应用时,我收到拒绝访问错误。 resco软件使用底层浏览器,在我的情况下是 IE11 。我已经将错误范围缩小到当角度试图加载路径的部分时。

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

  xhr.open(method, url, true);

从我的研究中,似乎IE认为我正在尝试CORS请求,但我只是试图从磁盘加载文件。 各种帖子建议我将网站添加到“可信站点”,但我实际上并没有访问其他网站。我也无法在Web服务器上托管此内容,因为我们的目的是让{angular {1}}应用程序中的此角度应用程序可以脱机使用

如果我导航到Resco MobileCRM文件夹并直接从那里运行angularjs应用程序(即resco应用程序中),我会出现同样的错误

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

如果有人能够解释为什么会发生这种情况以及如何解决这个问题,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

我已经确认在任何浏览器上都无法做到这一点。您无法对从磁盘本地提供的文件发出xhr请求。

我通过加载我的' partials'来解决这个问题。 in to script tags并引用指令中这些脚本标记的id。

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