2014-01-09 20 views
6

我想通過iframe中的AJAX請求在我的Rails 4應用程序中創建會話。爲什麼Safari在Chrome不支持的情況下導致Rails CSRF異常?

在iframe中,我們提供了與屬性remote: true像往常一樣一個新的會話形式,並在佈局的頭部包含在表單主體<%= token_tag %>以及<%= csrf_meta_tags %>

Chrome發佈此表單並創建會話沒有問題。在相同的條件下,Safari會導致CSRF異常。

爲什麼會發生這種情況,我能做些什麼來阻止它?據我瞭解,這不是CSRF必不可少的情況,因爲沒有會話劫持,但我仍然謹慎地關閉它。

Google Chrome版本31.0.1650.63

Safari瀏覽器版本:7.0.1

回答

3

看來這就是著名的 '第三方cookie' 的問題。 Safari默認禁用它們。

更多:How do Third-Party "tracking cookies" work?

+0

感謝您的信息。我仍然不明白什麼是解決方案。 – guyaloni

+0

@guyaloni,你要麼不用cookies就能工作,要麼把用戶帶到你的網站並在那裏設置一個cookie – djb

+0

那麼,http://stackoverflow.com/a/8175979/1039488解決了我的問題! – guyaloni

相關問題