Я сварил свою страницу до самой простой вещи, и она все еще не работает в IE8.
Здесь вся html-страница:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xml:lang="en" lang="en">
<head></head>
<body>
<div id="fb-root"></div>
<fb:login-button></fb:login-button>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
FB.init({appId: 'd663755ef4dd07c246e047ea97b44d6a', status: true, cookie: true, xfbml: true});
FB.Event.subscribe('auth.sessionChange', function(response) {
alert(JSON.stringify(response));
});
FB.getLoginStatus(function (response) { alert(JSON.stringify(response)); });
</script>
</body>
</html>
В firefox, safari и chrome (на Mac) я получаю поведение, которое я ожидаю: если я не зашел в Facebook, я получаю диалог загрузки страницы с пустым сеансом. Когда я нажимаю кнопку "Вход" и регистрируюсь, я получаю второе диалоговое окно с сеансом. Если я зарегистрирован в Facebook, я получаю два диалога с сеансами: один из вызова getLoginStatus и другой из события.
В IE8 я не получаю никаких диалогов при загрузке страницы. Обратный вызов getLoginStatus не вызывается. Когда я нажимаю кнопку "Вход", я получаю диалог, но в нем очень странная ошибка:
Недопустимый аргумент
Междоменный домен Facebook Connect URL получателя (http://static.ak.fbcdn.net/connect/xd_proxy.php#?=&cb=f3e91da434653f2&origin=http%3A%2F%2Fmysiteurl.com%2Ff210cba91f2a6d4&relation=opener&transport=flash&frame=f27aa957225164&result=xxRESULTTOKENxx) должен иметь приложение Connect URL (http://mysiteurl.com/) как префикс. Вы можете настроить Connect URL в настройках приложения Редактор.
Я пробовал URL-адрес Connect выше, но это правильно.
В диалоговом окне есть поля имени пользователя и пароля. Если я войду в систему, диалоговое окно будет перенаправлено на мой URL-адрес Connect, но нет fb файла cookie, поэтому, конечно, ничего не работает.
Что я здесь делаю неправильно?
Обновление (2010 сент. 10):
Эта проблема не универсальна. В моем URL-адресе сайта есть номер порта, потому что это мой тестовый сайт: http://mysiteurl.com:12345. Без порта число, т.е. кажется, все в порядке. С номером порта он продолжает как это было раньше. Однако сообщение об ошибке теперь более кратким:
Недопустимый аргумент
Указанный URL-адрес не разрешен конфигурацией приложения
Кроме того, эта проблема специфична для IE (фактически, я подозреваю, что она специфична для транспорта XD Flash, но я не знаю, как это подтвердить). Он отлично работает на всех других платформах/браузерах, которые я пробовал.
Я все еще не ближе к этой работе с URL-адресом с номером порта.