在AngularJS中的IE11上拒绝访问

时间:2015-02-26 11:13:56

标签: javascript angularjs internet-explorer xmlhttprequest cors

每个开发管道都有两个部分。首先要努力工作并开发应用程序。 SECOND努力工作并使其与傲慢的IE相媲美。

我们有一个AngularJS (v1.3.13)应用程序,没有Webstorm中开发的任何服务器端代码。我们正在拨打REST来电。我们的应用程序适用于Chrome和Firefox,没有任何控制台错误。但是,当我们尝试在IE11或IE9(未尝试IE10)中打开页面时,我们的页面无法加载。控制台建议我们有2个错误。其中一个是Access is Denied

xhr.open(method, url, true);
angular.js中的

互联网上有很多帖子,但似乎都没有。这就是我的尝试。

  1. 使用已更改的处理程序映射在IIS中托管应用,以支持.Net v4.0的应用程序池上的跨域调用(由高级人员建议)
  2. 尝试禁用缓存HTTP请求。
  3. 在受信任的站点类别中添加域,并将locahost / IP添加到本地Intranet。
  4. 将请求类型更改为JSONP并尝试将Access-Control-Allow-Origin(值为*)添加到标题中。
  5. 更改IE设置以允许跨域呼叫。
  6. 错误仍在追逐我们。甚至我的同事也在他们的机器上尝试过相同的打击。有没有人建议我这件事。

    它可能是CORS,我可能需要使用xdr(XDomainRequest)但不确定如何使用它,因为error.js中的错误。我当然不是这方面的专家所以请建议。

    错误的屏幕截图: enter image description here

    IE显示另一个错误: [$injector:nomod] Module 'ngLocale' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument. http://errors.angularjs.org/1.2.16/$injector/nomod?p0=ngLocale我现在无视这一点。

    请告诉我一些事情。 感谢。

3 个答案:

答案 0 :(得分:0)

你试过xdomain吗? https://github.com/jpillora/xdomain它是一个纯粹的JavaScript CORS替代品。

答案 1 :(得分:0)

我从1.3.4切换到1.4.8,这就是诀窍。在I.E.中不再有角度访问被拒绝(Microsoft Edge 25 2015)。我不知道为什么。

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-route.js/1.4.8/angular.min.js"></script>

答案 2 :(得分:0)

if (window.navigator && window.navigator.msSaveOrOpenBlob) {   
   window.navigator.msSaveOrOpenBlob(blob);
}
else {   
   var objectUrl = URL.createObjectURL(blob);    
   window.open(objectUrl);
}

Setting window.location or window.open in AngularJS gives "access is denied" in IE 11