【问题标题】:Is it possible to make a cross domain request from https to http in IE?是否可以在 IE 中进行从 https 到 http 的跨域请求?
【发布时间】:2013-12-26 19:12:18
【问题描述】:

我们正在尝试从浏览器访问本地自托管 WCF 服务。
WCF 服务位于http://localhost/myWcf
浏览器正在运行一个位于https://some.www.com 的网站。

我们已启用 CORS 并将 CORS 标头添加到托管的 WCF。使用 jQuery 的 $.ajax 调用来访问 WCF 服务。不使用 SSL 时,所有浏览器都可以正常工作,并且我们会收到“成功”回调。
当切换到 SSL 时,IE 是唯一一个无法发出请求的——“访问被拒绝”。我们将网站移至受信任的站点部分,基本上允许那里的所有内容,但仍然没有成功。我们使用的是 IE11/10,并且我们已经通过它的模拟器尝试了以前的版本。他们都不允许我们提出这个要求。

我们可以像这样从 https 处理位于 http 中的图片:

<img src="http://asdasd">

但我们尝试使用 javascript 它失败了:

var img = new Image(); 
img.src="http://asdasd";

我们缺少什么? IE中真的不能从https到http的跨域请求吗?

【问题讨论】:

  • 您可以解决图片问题,因为 IE 中的图像没有单一来源策略,但有安全到非安全 XHR 的来源策略。
  • @DanielWaters 有什么办法让它工作吗?
  • PKolos 下面的答案会起作用,但存在源策略是有原因的,尤其是对于安全连接。您是否无法通过自签名证书将 HTTP 端点设为 HTTPS?

标签: wcf internet-explorer jquery https cross-domain


【解决方案1】:

检查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 是解决跨域脚本错误的好方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-23
    • 2013-11-02
    • 2012-07-26
    • 2012-08-21
    • 2012-02-20
    • 2012-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多