【发布时间】:2013-10-26 01:14:14
【问题描述】:
我们有一个统一的门户,它通过一个基于 jQuery 选项卡的界面链接多个服务,该界面利用 iframe 显示来自不同服务的内容。我们的门户在使用 HTTPS/SSL 的安全服务器上运行。虽然我们的大多数外部服务都是 HTTPS,但其中两个不是。显然,我们意识到混合内容的问题,我们不喜欢在门户中拥有非 https 站点的想法,但我们别无选择。一切都还好,直到几天前谷歌将 chrome 更新到 30 版时,它现在默默地阻止了混合内容。这给我们带来了很多问题。我们联系了外部服务并询问他们是否可以将其服务升级到 HTTPS,其中一个回复说他们在未来 2 年内没有这样做的计划。
显然这是个问题。我们尝试通过让该服务在新的浏览器窗口中打开来解决该问题,但这是一个相当不雅的解决方法,如果可能的话,我想摆脱它。有什么方法可以让我使用 AJAX 或 PHP 来预取相关页面,然后在门户 iframe 中显示它而不用 Chrome 阻止它?
如果有任何建议,我将不胜感激。我确实理解将安全内容与非安全内容混合在一起是多么糟糕的想法,但我在这件事上别无选择,因为我的经理坚持认为该服务必须是门户的一部分。
提前致谢。
问候
亚历克斯
【问题讨论】:
-
这个问题只发生在 JS over http,我想。如果可以将您嵌入的内容剥离为仅 html/css/images,Chrome 似乎仍然可以正常显示它们。
-
@Blazemonger 使用 Apache 的 mod_proxy 更直接,可以像 .htaccess 文件中的一行一样简单。 :) 它的开销也比在 PHP 中做同样的事情要少得多。
-
我收回我之前的评论。 iframe 是问题所在,即使您只是请求一个没有 html/javscript 的纯文本页面。
-
我同意...问题不在于获取非 HTTPS 页面,而是试图在嵌入 HTTPS 页面的 iframe 中显示它。
标签: php jquery google-chrome iframe https