我正在尝试将 Facebook 评论小部件添加到通过 SSL/HTTPS 提供的页面。小部件工作正常,但当我尝试在 IE7 或 IE8 中加载页面时,我收到“混合内容”安全警告。
我已经检查并确认我们没有在页面中引用任何不安全的资源。删除 facebook 评论小部件会使警告消失。使用提琴手,我试图查明被引用的资源,但据我所知,没有任何东西被拉过 http。我已经用一个最小的复制案例确认了这个问题,该案例只有页面上的评论小部件。
<!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>
这会在其他浏览器(Chrome、Firefox、IE9 及更高版本)中加载而不会发出警告。
我已经查看了我的 facebook 应用程序设置,一切似乎都配置正确,虽然我是 facebook 集成的新手,所以也许我错过了一些东西。
我看过这个线程,Facebook JavaScript SDK over HTTPS loading non-secure items,但没有任何建议有任何效果。我怀疑这个问题有所不同,因为我在其他浏览器中也没有看到警告。
任何见解将不胜感激。