A friend of mine ran into this IE problem recently and it reminded me of one of the early snags I hit when developing a facebook application with the Open Graph API. IE is much more finicky about cross domain requests than other browsers, which can cause issues when authenticating with Facebook. The primary symptom of this problem is that a user can login to your site using the Facebook login button and firefox or chrome, but cannot log in via IE. The trick is that you need to also set the Base Domain field to handle multiple subdomains. So, if your Connect URL was http://www.somesite.com/, you’d set your Base Domain field to somesite.com.

Other problems indicative of cross domain issues are blank login popups or callbacks never being called (such as getLoginStatus). For my projects, setting the Base Domain fixes these issues. I typically use xd_receiver.htm as a default channel file, but you can also create your own channel file and pass it in during initialization using the channelUrl property of FB.init (e.g. http://wiki.github.com/facebook/connect-js/custom-channel-url).
Another error that might occur is ‘HTTP Error 400 – Bad Request’, after authentication. The login popup appears normally when the user clicks the fb:login button, but after successfully authenticating, the server returns a 400 error code. This typically happens if you’re developing locally with visual studio and using cassini as your development web server. Usually when debugging the url will have the form ‘localhost:8111′. There seems to be an issue with facebook’s javascript when a port number is specified, but it only pops up when testing IE, chrome and firefox are fine.

Note that all of this assumes you have the Connect URL set properly. If that’s not set to the correct domain/url, you’d get the following error:
The Facebook Connect cross-domain receiver URL (http://dev.somesite.com/home?fb_xd_fragment#?=&cb=f1077766447d60a&relation=opener&transport=fragment&frame=f15982ca8deeee5&result=xxRESULTTOKENxx) must have the application’s Connect URL (http://dev.somesite.com/) as a prefix. You can configure the Connect URL in the Application Settings Editor.
