2012-06-01 40 views
0

我正在使用Sinatra用Ruby編寫並在Heroku上託管的Facebook畫布應用程序。Facebook的帆布應用程序無法在Internet Explorer中工作

我這是我的代碼部分:

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

我已經嘗試過其他值是,包括CP =「HONK」(建議Facebook的dev的網站上)。

我的應用程序在Firefox和Chrome中完美工作,但在IE或Safari中,它的行爲非常奇怪。 它會無限刷新,刷新一次並停止,或者只是不加載(畫布是空的,它是白色的)。有時候,或者在某些電腦上,它只是起作用,但這很少見。

內容類型值對於我的頁面和Facebook頁面都是相同的。

它很可能卡在重新載入授權重定向。我使用建立在session[]中的sinatra來存儲一些東西,比如當前的用戶ID。我猜這些cookie沒有設置,我明白,如果第三方cookie被禁用,那麼我的應用程序就不會工作。但是,由於我有一個P3P設置,它應該可以在接受第三方cookie的瀏覽器中工作(我的所有設置都是這樣做的)。

如何讓它在IE中工作?

編輯:我也有一個在根目錄channel.html文件和channelUrl : "<%= url_no_scheme('/channel.html') %>"是我的FB.init的一部分。

+0

[Safari第三方Cookie iframe技巧不再有效?](http://facebook.stackoverflow.com/questions/9930671/safari-3rd-party-cookie-iframe-trick-no-longer-working ) – Igy

回答

1

可能是修復程序:

禁用channel.html文件?

默認情況下,Facebook使用CSS display:none加載一個空白,並調用parent.onchanneliframeready()。

看起來這個調用沒有完成。

+0

其實對我來說,我的應用程序是在重定向循環中。沒有適當的P3P隱私政策或已執行某些手動用戶操作,Safari和IE不允許在