我正在开发一个使用 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 的一部分。