使用php重定向在(https)网站上提供(http)页面。加载iframe时,页面样式不会显示,但网站会显示。
PHP重定向
<?php
if (isset($_GET['url'])) {
$url = $_GET['url'];
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
curl_close($ch);
echo $data;
}
?>
iFrame
<iframe src="https://sample/redirect.php?url=http://sample2/form/sampleform.aspx" style="width:100%;height:1200px;" frameborder="0" scrolling="auto" allowfullscreen></iframe>
浏览器检查器显示
ReferenceError: validationSummary is not defined
Loading failed for the <script> with source
答案 0 :(得分:1)
感觉好像问题全都围绕着您的设置:
使用php重定向在(https)网站上投放(http)页面。
您正在违反协议。检查调试器工具的“网络”选项卡。我愿意打赌,您会看到有关通过HTTPS调用不安全资源的错误。 (以上消息:
加载HTTP页面时,很可能会通过HTTP调用.css文件-这违反了规则。
将您的CSS更新为通过HTTPS调用。该问题可能会消失。
另一个要注意的是,您可能有一个css处理器(例如lesscss)也被不安全地加载,因为它是由.net制作的-很有可能包括不安全地加载ALSO的脚本。这些也会导致您的调用出现问题(您的错误消息:浏览器无法调用框架的错误消息。可能是因为脚本不安全并且无法加载脚本,因为不允许HTTPS加载不安全的资源)
[以下是解决方法。我强烈建议不要这样做。将页面上的资源加载与页面本身相同。这是一个糟糕的解决方案,但它会起作用。这是一个不好的解决方案,一个不好的做法,它是不安全的,这是您永远都不应做的所有事情……但是通过通过HTTPS提供HTTP页面来跳过系统也是这样。您确实应该通过HTTPS服务;如果要求我检查该代码,则将其丢弃并说“修复”。]
如果您无法通过HTTPS访问CSS /脚本-通过修改PHP提供的代码,由PHP为CSS提供服务。 (使用模式匹配或正则表达式替换您的PHP版本的CSS地址,然后投放该页面。)