Ole*_*sov 46 internet-explorer cors angularjs
在10以上版本的任何Microsoft IE浏览器上查看我的应用程序时,我在控制台上收到以下奇怪的错误:

我已尝试在AngularJS lib之前添加以下JavaScript代码来取消控制台:
console.log = function(){};
window.console = {log: function(){}};
Run Code Online (Sandbox Code Playgroud)
它没有任何区别.IE 10中的相同错误显示为:
SCRIPT7002: XMLHttpRequest: Network Error 0x80070005, Access is denied.
Run Code Online (Sandbox Code Playgroud)
可能是我试图从API获取'/ me'以检查用户是否经过身份验证或访客.
基本上.每次服务器提供2XX或3XX以外的响应时,消除那些恼人的控制台错误都会很棒!
更新:这似乎与通过不同的子域(CORS)访问API有关;
Ole*_*sov 74
我通过Google AngularJS小组经验丰富的ng-dev的指导实现的解决方案就是这个xDomain库.
设置非常简单,只需将proxy.html文件放在API的根目录下,使用正则表达式/字符串表示允许的原点('master'),并在前端对脚本进行引用,然后指向此来自前端脚本的文件('master').
它的工作原理是在iframe中打开proxy.html文件,并使用与CORS资源进行通信postMessage.
像$ http和$ resource一样魅力.
您还可以通过将脚本置于所有JavaScript库的上方来维护普通浏览器的正常运行:
<!--[if lte IE 9]>
<script src="xdomain.js" slave="http://example.org/proxy.html"></script>
<![endif]-->
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
56317 次 |
| 最近记录: |