简短版本:有人能够在IE上通过SSL成功请求本地资源吗?在使用AJAX时,我遇到了“访问被拒绝”的错误。
详细版本:
我正在使用AJAX从运行本地Web服务的应用程序中检索JSON。Web服务通道是加密的,因此如果远程站点通过HTTPS提供,则不会出现“安全页面上的不安全资源”错误。
因此,在地址栏中是某种远程站点...mysite.com。它从https://localhost/
接收信息。
Web服务为CORS设置了正确的标头,并且在Chrome和Firefox中都可以正常工作。在IE中,如果我将https://localhost
资源放入地址栏中,则会返回并显示正确的资源。但是,当使用AJAX(而不仅仅是地址栏)时,IE中的安全设置会拒绝访问。这在这里部分记录下来:
当ajax目标是localhost时,在IE 10和11中被拒绝访问
其中一个回复中的唯一正确解决方案是将请求域(在本例中为mysite.com)添加到受信任的站点中。这可以正常工作,但我们希望不需要用户干预...指向有关如何添加受信任站点的知识库文章并不是一个很好的用户体验。该问题的其他回复由于以下原因而无效:
我还发现了以下信息:
IE、XMLHttpRequest和SSL(https)下的CORS
其中包含了IE AJAX请求的包装器回复。它看起来很有前途,但事实证明,IE11已经停用了XDomainRequest API。这可能是微软应该做的正确之举...但现在,将一个void onProgress处理程序添加到XDR对象的“黑客”解决方法显然不是一个选项,曾经充满希望的解决方法包装器变得毫无意义。
有人遇到过以下问题吗:
a) 有没有一种方法可以在不需要修改IE中的受信任站点的情况下处理这些请求?换句话说,第二个链接中的解决方法是否有更新版本的替代方案?
b) 如果没有更好的方法,是否有一种方式可以提示用户将网站添加到其受信任区域?“mysite.com希望被添加到您的受信任区域。确认是/否”,并且可以自动完成,而无需他们手动打开本机设置对话框并进行操作?