Facebook 应用 - 静默的“协议必须匹配”错误

5
这是我的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://协议,但我不真正理解为什么或是什么意思。为什么会发生这个错误,并且是否需要担心?
1个回答

5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接