0

我正在开发一个使用 Sinatra 用 Ruby 编写并托管在 Heroku 上的 Facebook 画布应用程序。

我将此作为我的代码的一部分:

before do
  response.headers['P3P'] = 'CP="We have no P3P policy."' 
end

我已经为此尝试了其他值,包括 CP="HONK" (如 facebook 开发网站上所推荐的那样)。

我的应用程序在 Firefox 和 Chrome 中运行良好,但在 IE 或 Safari 中它的行为非常奇怪。它将无限刷新,刷新一次并停止,或者只是不加载(画布是空的,它是白色的)。有时,或者在某些计算机上,它可以正常工作,但这种情况很少见。

我的页面和 facebook 页面的内容类型值相同。

很可能在授权重定向中重新加载。我使用内置的 sinatrasession[]来存储一些东西,比如当前用户 ID。我猜这些 cookie 没有被设置,而且我知道如果禁用 3rd 方 cookie,那么我的应用程序将无法正常工作。但是,由于我有 P3P 设置,它应该可以在接受 3rd 方 cookie 的浏览器中运行(我的所有浏览器都设置为这样做)。

我怎样才能让它在 IE 中工作?

编辑:我在根目录中也有一个 channel.html 文件,它channelUrl : "<%= url_no_scheme('/channel.html') %>"是我的 FB.init 的一部分。

4

1 回答 1

1

可能的修复:

禁用 channel.html 文件?

默认情况下,Facebook 使用 CSS display:none 加载一个空文件并调用 parent.onchanneliframeready()。

看起来这个调用没有完成。

于 2012-06-09T19:04:41.040 回答