all.js中的权限被拒绝错误

时间:2011-09-02 06:39:26

标签: facebook-javascript-sdk open-graph-protocol

我正在使用all.js进行Facebook实施。我在注册页面上使用了facebook按钮。通过登录我获取Facebook用户的用户名和电子邮件到注册页面上的字段。 它在Chrome,Safari和Firefox上运行良好,但它在IE8上出错。

错误发生在all.js第22行

{FB.UIServer._loadedNodes[a.id]=b;if(a.params)b.fbCallID=a.id;

如果有人知道为什么会出现这个问题,请帮助我。

由于 Udham

5 个答案:

答案 0 :(得分:10)

试一试。它对我有用,可能对某人有帮助。

FB.UIServer.setLoadedNode = function (a, b){FB.UIServer._loadedNodes[a.id] = b; }

理想情况下,附加调试器并查看哪种方法分解并破解它。

答案 1 :(得分:7)

这是一个已知错误:http://bugs.developers.facebook.net/show_bug.cgi?id=19042 它设置为CLOSED FIXED,但许多用户仍然在评论区域报告错误。

评论#19建议进行黑客攻击:

FB.init({
....
....
});
FB.UIServer.setActiveNode = function(a,b){FB.UIServer._active[a.id]=b;} // IE hack to correct FB bug

它适用于某些人。我必须说这对我不起作用,但我认为值得一提。

答案 2 :(得分:1)

我刚遇到这个(或类似的问题)。我的所有.js第22行,char 3160,在document.documentElement.style.display='none';之后,这是一个权限被拒绝错误。

在我的情况下,这是因为channelUrl使用的是不同的协议(https)而不是我的应用程序的iframe正在(http)下加载。我试过了//mydomain.com/channel.html,但这给了我一个不同的错误。我通过在生成html时为channelUrl动态选择http / https来解决它。

答案 3 :(得分:1)

我找到了解决方案。已经在https://stackoverflow.com/a/8504794/287604发布了答案,但对于绝望的快速修复:

FB.init({
    appId:        'xxxxx',
    appSecret:    'xxxxxxxxx',
    status:        true
    cookie:        true
});

// this code solves the issue
FB.UIServer.setLoadedNode = function (a, b) { 
FB.UIServer._loadedNodes[a.id] = b; 
};

答案 4 :(得分:1)

我仍然在努力解决这个问题,但我刚才注意到的一个奇怪的工作是,如果在将 show-faces 属性设置为“true”时使用fb:login-button,它会突然正常工作。我尝试了两个并排fb:登录按钮,并且show faces设置为false或不包含的按钮每次都会传回错误。