Php 跨域/协议iframe,可访问服务器和现代功能

Php 跨域/协议iframe,可访问服务器和现代功能,php,apache,iframe,cors,Php,Apache,Iframe,Cors,我正在尝试将iframe嵌入https站点。正在嵌入的站点只能使用http协议 我收到一个控制台错误,该帧被阻止,因为“请求访问的帧具有“https”协议,正在访问的帧具有“http”协议。协议必须匹配” 一旦我有了框架,我就想在嵌入式站点上运行代码。我认为使用postMessage框架应该可以做到这一点,但我不希望总是包含在嵌入页面上接收这些消息的代码,所以我希望在父站点上使用Javascript来注入JS文件。试图使用contentDocument,但收到一个错误,该错误为null 不需要支

我正在尝试将iframe嵌入https站点。正在嵌入的站点只能使用http协议

我收到一个控制台错误,该帧被阻止,因为“请求访问的帧具有“https”协议,正在访问的帧具有“http”协议。协议必须匹配”

一旦我有了框架,我就想在嵌入式站点上运行代码。我认为使用postMessage框架应该可以做到这一点,但我不希望总是包含在嵌入页面上接收这些消息的代码,所以我希望在父站点上使用Javascript来注入JS文件。试图使用contentDocument,但收到一个错误,该错误为null


不需要支持旧的浏览器,所以只要IE10/Chrome/Safari/Firefox最新版本运行,所有新的HTML5都可以。我可以完全访问这两台服务器,因此编辑PHP/Apache头是可以的。

回答我自己的问题,经过几个小时的努力,当父服务器是https,子服务器是http时,不可能插入JS文件

然而,一旦我放弃了这个梦想,那就很容易了

在加载iframe之前,我从网站a向我想在iframe中显示的网站(网站B)发出CORS AJAX请求,请求一个PHP文件,该文件检查HTTP_ORIGIN值以确保正确的服务器正在访问。如果是,它会在网站B上设置一个会话变量。然后,当我在iframe中从网站a加载网站B时,它会使用会话值来确定是否可以将我要注入网站B的javascript文件包括在内


在那之后,postMessage的东西在不同的协议上都工作得很好,没有额外的工作

哦。如果有人真的尝试过这一点,他们可能会发现记住在jQuery AJAX请求中必须将xhrFields.withCredentials设置为true,在PHP脚本中必须将Access Control Allow Credentials头设置为true很有用。facebook和google是如何做到的?当我们嵌入他们的js代码片段时,他们是否也制作了CORS AJAX?