我正在尝试在https网站的iframe中加载http网站。我知道它会给js和css带来mixed_content错误,所以为了解决mixed_content我使用的代理如下:
$url = "http://www.myweb.com";
$PROXY_HOST = "47.52.24.117"; // Proxy server address
$PROXY_PORT = "80"; // Proxy server port
$PROXY_USER = ""; // Username
$PROXY_PASS = ""; // Password
// Username and Password are required only if your proxy server needs basic authentication
$auth = base64_encode("$PROXY_USER:$PROXY_PASS");
stream_context_set_default(
array(
'http' => array(
'method'=>"GET",
'proxy' => "tcp://$PROXY_HOST:$PROXY_PORT",
'request_fulluri' => true,
'header' => "Proxy-Authorization: Basic $auth"
// Remove the 'header' option if proxy authentication is not required
)
)
);
$res = file_get_contents($url);
echo $res;
但是我仍然遇到js和css的mixed_content错误。 (图片和HTML内容在https下正常加载)。
答案 0 :(得分:0)
这主要是评论 - 但评论框中的空格仅限于此。
首先,您没有提到您正在使用的浏览器。 MSIE可以针对一些非混合内容的事情抛出此错误。如果您使用的是MSIE,您可以尝试使用其他浏览器,看看问题是否是Microsoft的怪癖之一,或者问题是否真的出现在您的代码中。
当你说“像下面这样”时,我希望这不是你用来从远程站点检索内容的代码,因为你在这里对URL进行了硬编码。我将通过前端控制器,mod_rewrite或404处理程序处理,您没有告诉我们,您已经验证了代理脚本正在正确翻译的URL /提供的内容是您期望的是什么,并在测试之间清除缓存....
您是否检查过您下载的脚本和CSS不包含指向http:// URL的网址?
您向我们展示的代码还有一个问题,即它不会检查/传递mimetype。