【发布时间】:2010-08-27 21:59:19
【问题描述】:
我试图在 FB 论坛中寻求帮助,但那里确实没有多少帮助。
我的应用程序设置为 iframe 应用程序,但如果应用程序设置为 fbml 应用程序并且通过 fb:iframe 加载下面的页面,则会发生相同的行为。无论使用什么高级设置,都存在相同的行为。简单的 FB.init(见下文)或异步调用也存在相同的行为。
我的网站 URL 已正确设置为 http://foo.mysitenamehere.foo/,这是该文件的位置。
这是我现在的应用的全部: 代码:
<html>
<head>
<script src="http://connect.facebook.net/en_US/all.js"></script>
</head>
<body>
<div id="fb-root"></div>
<script type="text/javascript">
FB.init({
appId : '127717367239744',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
alert("FB: " + FB + " FB.getSession(): " + FB.getSession());
FB.getLoginStatus(function(response) {
if (response.session) {
alert("1");
} else {
alert("2");
}
});
</script>
</body>
</html>
会发生什么:
工作浏览器的行为(Firefox、Chrome、Safari PC 和 Mac、IE 的一些用户) 第一个会话警报和警报“1”出现在所有这些浏览器中。如果我检查请求(使用 firebug 或 fiddler2),在每个工作的浏览器中,包括工作时的 IE,对 login_status.php 的请求是一个长 GET 请求。
损坏的 IE 中的行为 第一个会话警报显示会话为空/未定义。查看请求 login_status.php 是 POST 而不是 GET 请求。此 POST 请求的长度通常超过 4000 个字符。此请求源自 all.js。
login_status.php 正在返回: 代码:
HTTP/1.1 200 OK
Content-Type: text/plain;charset=utf-8
X-Cnection: close
Date: Fri, 27 Aug 2010 20:50:40 GMT
Content-Length: 22
Invalid Application ID
显然我的应用 ID 是有效的(请参阅其他 4 个工作浏览器),而不是 POST 请求被 login_status.php 损坏或不接受,因此响应失败并且应用在 IE 中损坏。
这是一个非常令人痛苦的问题。我的应用程序无法简化为更简单的示例,但它无法正常工作。每个画布 iframe 应用程序是否在 IE 中都表现出这种行为?如果不是,我所做的到底有什么不同?
提前感谢您的任何建议。
【问题讨论】:
标签: api facebook iframe canvas