"混合内容"在HTTPS页面中访问HTTP时出错

时间:2015-10-01 14:40:01

标签: javascript ssl iframe mixed-content

我们的Intranet网站必须与客户端.NET应用程序通信。我们在客户端应用上使用HttpListener(在http://localhost:[port]上),在页面中使用引用此网址的iframe。当页面是HTTP时,它就像魅力一样。

问题: 当网站是HTTPS时,混合内容' Javascript错误显示在较新的浏览器中,请求未到达客户端。

我相信在使用Ajax请求而不是iframe时也会发生此错误。

我还试图将自签名证书绑定到监听器并监听https://localhost:[port](适用于IE),但由于Firefox有自己的证书存储,因此很难自动安装它(IE使用易于安装的Windows证书存储区。)

那么,当网站本身是适用于FF和IE的HTTPS时,是否有人知道向http://localhost:[port]发出请求的可能性?

谢谢!

1 个答案:

答案 0 :(得分:1)

将iframe更改为:

<script>
    var request = new XMLHTTPRequest();
    request.open("GET", "http://localhost:[port]/?action=doStuff");
    request.send();
</script>

您还需要对您的应用进行一些小修改。

它需要实现OPTIONS方法,并且需要返回跨源资源策略。这听起来比现在困难得多,只需要将Access-Control-Allow-Origin标题设置为*即可返回回复。

GET请求的响应也必须包含此标头。

如果您知道尝试在localhost上与您的应用通信的所有域名,则可以将*更改为白名单,甚至只更改一个值。