当我在我的Facebook多朋友选择器对话框中按“发送请求”时,我收到以下错误。
Unsafe JavaScript attempt to access frame with URL https://s-static.ak.fbcdn.net/connect/xd_proxy.php#cb=f13538d5d4&origin=http%3A%2F%2Fjoincrowdy.com%2Ff3b62245cc&relation=opener&transport=postmessage&frame=f145be71f&result=%7B%22request%22%3A%22271624056256532%22%2C%22to%22%3A[%22122614229%22]%2C%22updated_frictionless%22%3Afalse%7D from frame with URL http://MYAPP.com/rooms/1. Domains, protocols and ports must match.
我最初是在myapp.com:3000上开发的,但是这个错误促使我尝试通过生产模式(端口80)发送应用请求。这没有解决问题。
注意:我在/ etc / hosts中添加了127.0.0.1 myapp.com会导致此错误吗?
这是我的代码:
function initFb() {
window.fbAsyncInit = function() {
FB.init({
appId : user.fbAppId,
frictionlessRequests: true,
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
});
// Additional initialization code here
};
// Load the SDK Asynchronously
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
}
function attachInviteButton() {
$("#invite").click(sendRequestViaMultiFriendSelector);
}
function sendRequestViaMultiFriendSelector() {
FB.ui({
method: 'apprequests',
message: 'Invite your friends to play now.',
}, requestCallback);
}
function requestCallback() {
}
答案 0 :(得分:0)
如果您查看JavaScript SDK documentation,您会看到当他们调用 FB.init 时,他们会提供一个频道网址:
FB.init({
appId: 'YOUR_APP_ID', // App ID
channelUrl: '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File
status: true, // check login status
cookie: true, // enable cookies to allow the server to access the session
xfbml: true // parse XFBML
});
你还没有。 在同一页面的频道文件部分下,可以解释它有什么用处以及如何提供它。
它清楚地说:
频道文件解决了跨域通信的一些问题 在某些浏览器中
此解决方案可能会为您解决该问题。