В Google Chrome (у меня 9.0.597.98) мое приложение Facebook iFrame с использованием Graph API/Javascript SDK всегда выдает следующие две ошибки JavaScript (см. ниже) на основе междоменных сценариев, но только на одной странице приложения.
Он входит в бесконечный цикл повторных попыток во втором сообщении. После того, как он оставил его на ночь, сегодня утром он сообщил о полумиллионе повторных попыток!
Вызов 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. Домены, протоколы и порты должны совпадать.