问题描述
今天在做一个https站点的时候,需要用iframe打开一个http页面。但发现在手机上和chrome上就是无法打开,显示Mixed Content(混合内容)。因为https协议站点,读取的资源文件js css png,包括请求post和get,还有iframe的页面,都必须是https协议的。所以就会报出下面的错误,其实是浏览器为了HTTPS网站不会受到不安全的HTTP资源的攻击的出现错误。其他浏览器下会有个提示用户点击确认就可以访问了。但chrome和手机浏览器上就不会,白屏一个,资源,请求,iframe都直接block掉。
下面是chrome报错的内容:
解决办法
提供有用的解决办法(最优1,其次2,向下排)
1.把iframe中的http升级成https。
2.https站点降级http,就能访问iframe http。
3.通过nigix做映射,页面写访问https,但nigix接收后转成http发送出去。
结论
别想什么其他解决办法,最好就都升级https,提升站点安全。用nigix这种方式只会增加站点对外网访问多一个服务,维护和排查问题起来。增加工作量,一步到位升级https才是明智选择。