Этот случай кажется невероятным.
У меня есть две версии страницы fbml для отображения списка приглашаемых пользователей. Две страницы возвращают идентичный HTML. Единственное отличие состоит в том, что у одного есть URL-адрес типа http://mydomain/user/myFriends, а у другого - URL-адрес http://mydomain/facebook/myFriends.
Одна версия отлично работает, а другая застревает, возвращая 404, когда браузер пытается получить serverfbml от Facebook. Попробуйте в IE и Firefox.
Что еще более странно, это то, что если я использую отладчик Firefox Firebug и щелкаю по URL-адресу для get for serverfbml и прошу его загрузить его на отдельной вкладке, я все равно получаю точно такое же поведение. Но я могу посмотреть на источник, загруженный firefox для обеих страниц, и убедиться, что он ИНДЕНТИЧНЫЙ.
Вот 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" xml:lang="en" lang="en" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link type="text/css" rel="stylesheet" href="/css/common.css"/>
</head>
<body id="page-facebook" class="facebook page-facebook-showInviteFriends logged-in ">
<script type="text/javascript" src="/js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="/js/common.js"></script>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
<fb:serverFbml width="760" height="346" style="width: 760px; height: 346px;">
<script type="text/fbml">
<fb:fbml style="width: 324px; height: 346px;">
<fb:request-form
action=""
method="POST"
invite="true"
type="Sample Name"
content="<fb:req-choice url='' label='Join Now!'></fb:req-choice>
">
<fb:multi-friend-selector
condensed="true"
showborder="true"
actiontext="Invite your friends"
email_invite=false
import_external_friends=false
exclude_ids=""
unselected_rows="10"
selected_rows="3"
/>
<fb:request-form-submit import_external_friends="false" label="null" />
</fb:request-form>
</fb:fbml>
</script>
</fb:serverFbml>
</html>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '130456257111111',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
channelUrl : 'http://sample.foobar.com/static/html/channel.html'
});
};
(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
</script>
<script type="text/javascript" src="/js/facebook.js"></script>
</body>
</html>