2012-02-13 60 views
1

我已經做了大量的搜索,並且沒有找到對這個問題的答案。Facebook在HTTPS中瀏覽時通過HTTP加載資產

我已經按照facebook文檔實現了Facebook JS SDK。這裏是我的網頁

<script> 
    window.fbAsyncInit = function() { 
     FB.init({ 
      appId : 'xxxxxxxxxxxxx', 
      status : true, // check login status 
      cookie : true, // enable cookies to allow the server to access the //session 
      xfbml : true, // parse XFBML 
      oauth :true // Enable oauth 2.0 
     }); 
     FB.Canvas.setAutoResize(); //set size according to iframe content size 
    }; 

    // Load the SDK Asynchronously 
    (function(d){ 
     var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;} 
     js = d.createElement('script'); js.id = id; js.async = true; 
     js.src = "//connect.facebook.net/en_US/all.js"; 
     d.getElementsByTagName('head')[0].appendChild(js); 
    }(document)); 

</script> 

的代碼片斷這個工作得很好,除了一個文件:http://static.ak.facebook.com/connect/canvas_proxy.php

所有。 js通過HTTPS加載就好了。但Facebook通過普通的HTTP仍然加載在canvas_proxy.php:

http://static.ak.facebook.com/connect/canvas_proxy.php?version=3#behavior=p&method=setSize&params=%7B%22height%22%3A714%2C%22width%22%3A1100%2C%22frame%22%3A%22iframe_canvas%22%7D

這是爲什麼?我似乎在做一切正確。 HTTPS用戶在訪問我的頁面時由於該URL而引發安全警告。

回答

0

嘗試在FB.init調用之前設置FB._https = true。這將處理canvas_proxy.php。

解決方案最初詳見Facebook JavaScript SDK over HTTPS loading non-secure items

+0

我試過了,它仍然通過HTTP加載不幸。如果是緩存的請求,我嘗試清除緩存/ Cookie - 仍然加載HTTP。不過謝謝你。 – 2012-02-13 20:50:18

相關問題