Facebook在IE7&amp ;;中通过HTTPS / SSL安全警告评论小部件。 IE8

时间:2012-10-31 21:17:34

标签: ssl https internet-explorer-8 internet-explorer-7 facebook-comments

我正在尝试将Facebook评论小部件添加到通过SSL / HTTPS提供的页面。小部件工作正常,但当我尝试在IE7或IE8中加载页面时,我收到“混合内容”安全警告。

我已经完成并验证我们没有引用页面中任何不安全的资源。删除Facebook评论小部件使警告消失。使用fiddler,我试图查明被引用的资源,但据我所知,没有任何东西被拉过http。我已经通过一个最小的repro案例确认了这个问题,该案例只有页面上的评论小部件。

<!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,但没有任何建议有任何影响。我怀疑这个问题有所不同,因为我也没有在其他浏览器中看到警告。

非常感谢任何见解。

1 个答案:

答案 0 :(得分:1)

听起来你正在做正确的事,甚至用Fiddler检查请求。当你仍然无法看到正在发生的事情时,绝对非常令人沮丧。

我没有给你一个确定的答案,但我可以建议一种可能性

IE8及以下版本已知在iframe中有空白页面时会抛出这样的错误。例如,框架是使用javascript创建的,但没有加载任何内容,或者填充about:blank作为URL。

我觉得如果你有错误的内容(例如404错误)也可能会发生,但我不太确定。这绝对是一个空白内容的已知错误。

当IE验证网页的安全性时会发生错误,它会错误地将您网页中的相对网址与about:blank网址相关联,从而生成about:/myimage.jpg之类的网址,然后将其视为在HTTPS安全区域之外,因此您会收到混合内容警告。

您可以在此处看到此错误的另一个讨论:What exactly are the rules for avoiding the "mixed content" warning in IE due to background images?

此处描述的解决方案是将所有网址设为绝对网址,并包含完整的域名和协议。

我希望有所帮助。