Facebook アプリの現在のログイン フローは次のとおりです (説明については、この回答を参照してください)。 ユーザーがログアウトまたはログインしたときにページをレンダリングするダミー関数ですlogout()
。login()
window.fbAsyncInit = function() {
FB.init({
appId: '...',
channelUrl: window.location.protocol + '//' + window.location.host + '/channel.html',
status: false,
cookie: true,
xfbml: false,
oauth: true
});
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
login(response);
} else {
FB.Event.subscribe('auth.login', function(response) {
login(response);
});
logout();
}
});
};
このログイン フローでは、ユーザーがログインするときにページをリロードする必要はありませんが、サイレント エラーが発生します。
オリジンが「 http://www.facebook.com 」のフレームが、オリジンが「 https://s-static.ak.facebook.com 」のフレームにアクセスするのをブロックしました。アクセスを要求するフレームのプロトコルは「http」、アクセスされるフレームのプロトコルは「https」です。プロトコルが一致する必要があります。
ページをリロードすると、アプリを保持しているiframeがhttps://
プロトコルに転送されると思いますが、その理由や意味がよくわかりません。このエラーが発生するのはなぜですか? また、懸念すべきことはありますか?