Występuje błąd bardzo podobny do tego: Facebook Login API HTTPS Issue.Facebook podobny do przycisku https: niezgodność protokołu z http i https
Posiadam stronę internetową korzystającą z uwierzytelniania facebook, logowanie na Facebooku nie stanowi problemu. Ale Facebook podobnie przycisku dostać zmartwiony, gdy został wciśnięty (test nie powiedzie się na Chrome, Safari, Firefox, w OSX), komunikat o błędzie jest:
Blocked a frame with origin "https://www.facebook.com" from accessing a
frame with origin "http://static.ak.facebook.com". The frame requesting
access has a protocol of "https", the frame being accessed has a protocol
of "http". Protocols must match.
Rozglądałem całym i znaleźć żadnego rozwiązania.
Wygląda na to, że po kliknięciu przycisku podobnego, pojawia się ramka z połączenia zwrotnego https://facebook.com i próba żądania http://static.ak.facebook.com powoduje niezgodność protokołu ?!
Oto co mogę umieścić tuż po <body>
tagu
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
// init the FB JS SDK
FB.init({
appId : 'appid', // App ID from the app dashboard
channelUrl : '//mydomain/channel.html', // Channel file for x-domain comms
status : true, // Check Facebook Login status
xfbml : true // Look for social plugins on the page
});
// Additional initialization code such as adding Event Listeners goes here
};
// 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/zh_TW/all.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
i plik kanału na http://mydomain/channel
<script src="//connect.facebook.net/zh_TW/all.js"></script>
a oto jak używać takiego przycisku
<div class="fb-like" data-href=url data-send="true" data-width="450"
data-show-faces="true"></div>
naprawdę potrzebuje prosimy o pomoc!
Czy próbowałeś dodać protokół do skryptu src? – Mangiucugna
jeśli używasz // zamiast http lub https, to przypuśćmy, że chcemy wyzwolić żądanie z protokołem zgodnym z protokołem przeglądarki, upewnij się, że wszystkie twoje adresy URL zaczynają się od // np. Src = "// twoja_witryna.com" – talsibony
Czy wypróbowana wersja podobnego przycisku iframe? – Jacob