在 Google 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
}
});
在 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= joey&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=1&sdk= joey&session_version=3 来自带有 URL 的框架http://subdomain.example.com/colonversationmap/Admin.TestPage.aspx?signed_request=871miFgH_-o05POnx20387XHd2YlArKLU6qUv8VkxY4.eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsImlzc3VlZF9hdCI6MTI5ODQyMDEwMSwidXNlciI6eyJjb3VudHJ5IjoiY2EiLCJsb2NhbGUiOiJlbl9VUyIsImFnZSI6eyJtaW4iOjIxfX19 . 域、协议和端口必须匹配。