我们正试图从浏览器访问本地自托管WCF服务
WCF服务位于http://localhost/myWcf
浏览器正在运行一个位于https://some.www.com
的网站。
我们已经启用了CORS,并将CORS头添加到托管WCF中。对WCF服务的访问是使用jQuery的$.ajax调用完成的。当不使用SSL时,所有浏览器都能正常工作,我们正在进行"成功"回调
当切换到SSL时,IE是唯一一个无法发出请求的IE——"访问被拒绝"。我们把网站移到了可信网站部分,基本上允许那里的一切,但仍然没有通过。我们使用的是IE11/10,我们已经通过它的模拟器尝试过以前的版本。他们都不允许我们提出这一要求。
我们可以从https中寻址位于http中的图片,如下所示:
<img src="http://asdasd">
但我们尝试使用javascript,它失败了:
var img = new Image();
img.src="http://asdasd";
我们缺少什么?在IE中从https到http进行跨域请求真的不可能吗?
检查jsonp:
var script = document.createElement('script');
script.id = 'dynScript';
script.type='text/javascript';
script.src = 'http://localhost/myWcf';
document.getElementsByTagName('head')[0].appendChild(script);
JSONP是解决跨域脚本错误的好方法。