背景
我正在尝试开发一个AngularJS
应用,作为Resco MobileCRM
软件的一部分托管为'离线html'。该软件通过自己的javascript库提供对CRM数据的离线访问,这很好。在检索和显示数据方面,我还能够得到一个非常简单的angularjs应用程序。
使用Resco界面将AngularJS应用程序上载到CRM,然后通过resco软件下载到每台客户端计算机。实际文件最终位于每台客户端计算机上的用户AppData
文件夹中。
问题
当我使用ngRoute
或ui-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
,但我不愿意更改角度库,特别是如果我不明白为什么。
如果有人能够解释为什么会发生这种情况以及如何解决这个问题,我将不胜感激。
答案 0 :(得分:0)
我已经确认在任何浏览器上都无法做到这一点。您无法对从磁盘本地提供的文件发出xhr请求。
我通过加载我的' partials'来解决这个问题。 in to script tags并引用指令中这些脚本标记的id。
我没有尝试使用ui.router或ngRoute,而是选择将我的应用程序重新设计到一些较小的应用程序中,因为它们不需要共享任何上下文