使用 CORS 调用本地 URL 时 IE10 中的访问被拒绝

Posted

技术标签:

【中文标题】使用 CORS 调用本地 URL 时 IE10 中的访问被拒绝【英文标题】:Access is Denied in IE10 when using CORS to call a local URL 【发布时间】:2013-11-10 02:03:49 【问题描述】:

我已经在我的服务器上启用了 cors,我正在使用这个 website 来测试我的服务器上是否成功启用了 cors。

当我使用 chrome 调用 http://myserver/iisstart.htm 时,它会成功,但是当我使用 IE 时,我得到一个异常 SCRIPT 5: Access is Denied on line xhr.open(method, url, true);

错误发生在 open 方法上,因此与服务器配置无关。 如果我打电话给http://myserver.com/iisstart.htm,我就不会再出现这个错误了,但是这个电话当然不会起作用,因为我不在.com上

那么当 url 引用本地地址时,为什么 IE 不允许打开 XMLHttpRequest?

【问题讨论】:

【参考方案1】:

默认情况下,本地网络上的站点在启用增强保护模式的情况下运行。这可以防止您的本地网络从另一个区域(即 Internet 区域)访问可能不安全的页面。

您有几个选项可以解决这个问题: 1) 确保您只向本地资源发出请求。 2) 在本地 Intranet 区域上禁用 EPM(Internet 选项 -> 安全 -> 本地 Intranet -> 取消选中“启用保护模式”)。这可能是不安全的。 3) 将您的服务器和远程资源添加到您的受信任站点列表中。

祝你好运,希望对你有帮助!

【讨论】:

嗨,格兰特,我按照您的建议做了,但没有运气。但是当你谈到多个区域相互交互时,你给了我一个想法。所以我将网页保存在我的桌面上并打开了 html 文件,现在我可以进行 CORS 调用了。 如果您在 IE 中使用 Native XMLHTTP,安全区域问题会比 EPM 更进一步。 msdn.microsoft.com/en-us/library/ms537505(VS.85).aspx#xdomain

以上是关于使用 CORS 调用本地 URL 时 IE10 中的访问被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

IE10 使用 CORS 时不发送 cookie

使用 IE11 的 CORS 请求

在 IE10 的 AJAX CORS 请求中添加自定义标头时,CORS 请求中止

在本地调用 Firebase 云函数时,我收到 200 响应,但响应是 cors 类型响应,而不是我的实际数据

IE9 CORS 和restangular

从 angularjs 调用 REST 服务时本地主机上的 CORS 问题