2

我正在嘗試將Facebook註釋插件添加到通過SSL/HTTPS提供的頁面中。該小工具工作正常,但是當我嘗試在IE7或IE8中加載頁面時,出現「混合內容」安全警告。在IE7和IE8中通過HTTPS/SSL安全警告發布Facebook評論插件

我已經通過並驗證我們沒有引用頁面中的任何不安全資源。刪除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

這聽起來像你正在做的一切正確,甚至使用提琴手檢查請求。當你仍然無法看到發生的事情時,肯定會非常沮喪。

我沒有給你一個明確的答案,但我可以建議一個可能性

IE8及以下已經知道拋出這樣的錯誤,當它在一個iframe一個空白頁。例如,框架是使用JavaScript創建的,但沒有加載任何內容,或者使用about:blank作爲URL進行填充。

我有一種感覺,如果你有錯誤的內容(例如404錯誤),但我不太確定。這絕對是一個空白內容的已知錯誤。

當IE正在驗證頁面的安全性時,它會錯誤地將頁面中的相對URL與about:blank URL組合起來,從而導致URL爲about:/myimage.jpg,然後將其視爲在HTTPS安全區域之外,因此你會得到混合內容警告。

您可以在這裏看到了這個bug的另一個討論:What exactly are the rules for avoiding the "mixed content" warning in IE due to background images?

解決方案描述的存在使所有URL絕對URL,以完整的域和協議包括在內。

我希望有幫助。

+0

感謝您的建議。之前我並沒有意識到這個問題。看起來這似乎是合理的,但如果它的Facebook代碼創建了空的iFrame,我不確定是否有任何事情可以處理。我會看看。 – lintmachine

相關問題