2013-02-05 97 views
3

我有一個Facebook應用程序從我的服務器加載作爲一個iframe內的Facebook粉絲頁面。 我使用javascript sdk來處理Facebook身份驗證。Facebook sdk不安全的請求arbiter.php

當我通過http訪問的fanpage在IE,則控制檯顯示以下HTTPS安全錯誤: SEC7111:HTTPS安全性由http://static.ak.facebook.com/connect/xd_arbiter.php?version=18

這使得用戶能夠看到「不安全的內容」警告損害。 我知道它與IE處理跨域iframe加載的方式有關。

更多細節:

  • 時發生的情況FB.init被調用(xd_arbiter.php由FB SDK請求時FB.init稱)
  • 在IE(IE具體9)纔會發生。 Chrome或FF中沒有安全警告。
  • 只有在通過http加載facebook時纔會發生,而不是https。我會認爲這將是另一種方式......所以Facebook必須通過https加載某些內容,即使fanpage是通過http加載的。

我已經試過:

  • 設置FB._https =初始化調用之前如此。 (不起作用,已棄用)
  • 確保sdk通過https加載(在channel.html中)。
  • 確保我對我的服務器所做的所有請求都是通過https。

這是我調用init:

FB.init({ 
    appId  : '{$appid}', 
    status  : true, 
    cookie  : false, 
    xfbml  : true, 
    oauth  : true, 
    channelUrl : '//my_url.com/channel.html' 
}); 

而且channel.html的內容:

<script src="//connect.facebook.net/en_US/all.js"></script> 

所以,我怎麼可以強制SDK通過https加載xd_arbiter.php所以警告消失了?

我瞭解sdk在不斷髮展,但我首先要確保我沒有做錯什麼。

感謝

回答

0

我建議你在同一協議的所有資產,無論是HTTP或HTTPS。

然後,對於遠程請求,是否考慮在服務器上創建PHP端點,以便您的AJAX請求可以調用您的PHP腳本(位於同一個域中),而不是調用跨域URL,然後獲取PHP curl做跨域的東西?