IE7&;中基于HTTPS/SSL的Facebook评论小部件安全警告;IE8
我正在尝试将Facebook评论小部件添加到通过SSL/HTTPS提供服务的页面。小部件工作正常,但当我尝试在IE7或IE8中加载页面时,会收到“混合内容”安全警告 我已经检查并验证了我们没有引用页面中任何不安全的资源。删除facebook评论小部件会使警告消失。使用fiddler,我试图精确定位被引用的资源,但据我所见,http上没有任何内容。我已经用一个最小的repo案例确认了这个问题,这个案例页面上只有comments小部件IE7&;中基于HTTPS/SSL的Facebook评论小部件安全警告;IE8,ssl,https,internet-explorer-8,internet-explorer-7,facebook-comments,Ssl,Https,Internet Explorer 8,Internet Explorer 7,Facebook Comments,我正在尝试将Facebook评论小部件添加到通过SSL/HTTPS提供服务的页面。小部件工作正常,但当我尝试在IE7或IE8中加载页面时,会收到“混合内容”安全警告 我已经检查并验证了我们没有引用页面中任何不安全的资源。删除facebook评论小部件会使警告消失。使用fiddler,我试图精确定位被引用的资源,但据我所见,http上没有任何内容。我已经用一个最小的repo案例确认了这个问题,这个案例页面上只有comments小部件 <!DOCTYPE html> <html l
<!DOCTYPE html>
<html lang="en-us" xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<title>
Test FB Comments
</title>
</head>
<body>
<div class="fb-comments" data-href="https://www.example.com/fb_minimal.html" data-num-posts="10" data-width="470" data-colorscheme="light"></div>
<div id="fb-root"></div>
<script type="text/javascript">
window.fbAsyncInit = function () {
FB.init({ appId: 'MY_FACEBOOK_APP_ID', status: true, cookie: true,
xfbml: true
});
};
(function () {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
} ());
</script>
</body>
</html>
测试FB评论
window.fbAsyninit=函数(){
FB.init({appId:'MY_FACEBOOK_APP_ID',状态:true,cookie:true,
xfbml:对
});
};
(功能(){
var e=document.createElement('script');e.async=true;
e、 src=document.location.protocol+'//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
} ());
在其他浏览器(Chrome、Firefox、IE9及更高版本)中加载时不会发出警告
我已经检查了我的facebook应用程序设置,所有配置似乎都是正确的,尽管我是facebook集成的新手,所以我可能错过了一些东西
我看过这个帖子,但是没有一个建议有任何效果。我怀疑这个问题与此不同,因为我在其他浏览器中也没有看到警告
如果您有任何见解,我们将不胜感激。听起来您做的一切都很好,甚至可以使用Fiddler检查请求。当你仍然看不到正在发生的事情时,肯定会非常沮丧 我没有一个明确的答案给你,但我可以建议一种可能性 IE8及以下版本在iframe中有一个空白页面时会抛出类似的错误。例如,框架是使用javascript创建的,但没有加载任何内容,或者使用
about:blank
作为URL填充
我有一种感觉,如果你对错误感到满意(例如404个错误),也可能发生这种情况,但我对此不太确定。这绝对是一个已知的错误,内容是空白的
发生的情况是,当IE验证页面的安全性时,它错误地将页面中的相对URL与about:blank
URL组合在一起,导致类似about:/myimage.jpg
的URL,然后它将其视为HTTPS安全区域之外,因此您会收到混合内容警告
您可以在此处看到关于此错误的另一个讨论:
这里描述的解决方案是使所有URL成为绝对URL,包括完整的域和协议
我希望这能有所帮助。谢谢你的建议。我以前不知道IE8的这个问题。这似乎是可能的原因,但如果是Facebook的代码创建了空的iFrame,我不确定我是否可以对此做些什么。不过我要看看。