3

我對FB.ui進行的任何調用都沒有采取任何行動。在Chrome上,如果'display'屬性設置爲'iframe'或'dialog',則會觸發以下錯誤:Facebook FB.ui不起作用

阻止源「https://www.facebook.com」的幀訪問源爲「http://my.domain.com」的幀。請求訪問的幀具有「https」的協議,被訪問的幀具有「http」的協議。協議必須匹配。

Firefox和IE都沒有顯示控制檯中的任何內容,但是也沒有任何反應。因此,我不太確定這是否是實際的XSS問題。爲了記錄,整個網站在HTTP上運行,我沒有明確指定任何HTTPS查詢。

的源代碼如下:

window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : XXXXXXXXX, 
     status  : true, 
     cookie  : true, 
    }); 

    FB.Event.subscribe('auth.logout', function(response) { 
     window.location.reload(); 
    }); 

    window.selectedFacebookFriends = [YYYYYYYYY]; 

    window.inviteFacebookFriends = function() { 
     FB.getLoginStatus(function(response) { 
      if (response.status === 'connected') { 
       to = window.selectedFacebookFriends.join(','); 
       FB.ui({ 
        method: 'apprequests', 
        message: 'Join ZZZZZZZZZ, it\'s cool there!', 
        to: to 
       }, function(response) {}); 
      } 
     }); 
    } 
}; 

// Load the SDK asynchronously 
(function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/en_US/all.js"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk')); 

我試着用很多其他方法FB.ui,並改變了所有的參數,直接從控制檯調用它,但是這並沒有幫助。

Facebook登錄完美地工作,以及我嘗試使用FB.api的所有圖形請求。這個問題似乎在於FB.ui或其實施。

我在這個網站上發現了很多類似的問題,但我遇到的解決方案都沒有解決這個問題。

非常感謝您的幫助,如果我忘記了任何相關信息,請不要猶豫。

回答

5

如果您想要一個彈出對話框,並且遇到此問題,請確保在fb.ui中明確指定display: 'popup'