相关疑难解决方法(0)

FB.Login(..)上的Facebook iFrame App中仅限Chrome的跨域脚本编写错误

在谷歌浏览器中(我在9.0.597.98)我使用Graph API/Javascript SDK的Facebook iFrame应用程序倾向于总是基于跨域脚本编写引发以下两个JavaScript错误(见下文),但仅在应用程序的一个页面上.

它进入第二条消息的无限重试循环.离开之后,它在今天早上报告了50万次重试!

正在使用的FB调用用于登录:

FB.login(function(response) {
  if (response.session) {
    // user successfully logged in
  } else {
    // user cancelled login
  }
});
Run Code Online (Sandbox Code Playgroud)

在Firefox和IE9中,我没有收到这些错误.它特定于Chrome(可能是WebKit). 奇怪的是,我在应用中使用了第二页FB.Login,除了其他浏览器之外,它还可以在Chrome使用.我在某处读到Safari对跨域脚本编写有更严格的要求 - 它与Chrome共享相同的代码库.

Domains, protocols and ports must match(错误消息)我相信实际上是满意的,因为我有另一个与FB.Login调用一起工作的页面我在这两个消息之间看到的唯一区别是postmessage查询参数对于每个消息都有不同的值(在消息中加粗).然而,只有一个iFrame构成了一个Facebook应用程序,所以我想知道为什么两个不同的值可能会一个接一个地使用.我不是故意引导回答专注于这个项目,但我确实想指出它.

欢迎提出我可能尝试解决此错误的建议.

Chrome JavaScript控制台消息:

消息1:不安全的JavaScript尝试使用URL访问框架

https://www.facebook.com/dialog/permissions.request?api_key=168297653202478&app_id=168297653202478&display=popup&fbconnect=0&locale=en_US&method=permissions.request&next=http%3A%2F%2Fstatic.ak.fbcdn.net%2Fconnect%2Fxd_proxy. php%23cb%3Df3d15633dc%26origin%3Dhttp%253A%252F%252Fsubdomain.example.com%252Ff22a8befa%26relation%3Dopener%26transport%3D postmessage%26frame%3D f111baf6f4%26result%3D%2522xxRESULTTOKENxx%2522&perms = publish_stream%2Coffline_access&return_session = 1&sdk =乔伊&session_version = 3从与URL帧http://subdomain.example.com/colonversationmap/Admin.TestPage.aspx?signed_request=871miFgH_-o05POnx20387XHd2YlArKLU6qUv8VkxY4.eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsImlzc3VlZF9hdCI6MTI5ODQyMDEwMSwidXNlciI6eyJjb3VudHJ5IjoiY2EiLCJsb2NhbGUiOiJlbl9VUyIsImFnZSI6eyJtaW4iOjIxfX19.域,协议和端口必须匹配.

消息2:不安全的JavaScript尝试使用URL访问框架

https://www.facebook.com/dialog/permissions.request?api_key=168297653202478&app_id=168297653202478&display=popup&fbconnect=0&locale=en_US&method=permissions.request&next=http%3A%2F%2Fstatic.ak.fbcdn.net%2Fconnect%2Fxd_proxy. php%23cb%3Df304d46e08%26origin%3Dhttp%253A%252F%252Fsubdomain.example.com%252Ff23ce8203%26relation%3Dopener%26transport%3D postmessage%26frame%3D fcd3637bc%26result%3D%2522xxRESULTTOKENxx%2522&perms = publish_stream%2Coffline_access&return_session = …

javascript google-chrome facebook-iframe facebook-javascript-sdk

7
推荐指数
1
解决办法
2万
查看次数

图像请求阻止FB.getLoginStatus

Facebook的Javascript SDK有一个叫做getLoginStatus停顿的方法(并且永远不会触发传递给它的回调),而页面上的图像请求也会停止(即浏览器很长时间没有收到200或404).

如果你等了长时间并且浏览器(?)最终关闭了获取图像的尝试,那么SDK继续它的快乐方式.

可能会发生什么,是否有办法防止它?当用户因图像请求无法登录或注册时,这非常不方便.

facebook facebook-javascript-sdk

5
推荐指数
1
解决办法
298
查看次数