0

我有一个 Rails 3 应用程序,我正在使用 Warden 进行身份验证。它工作正常,但是当我尝试使用 AJAX(POST) 访问控制器之一时,应用程序会注销我的帐户并要求我再次登录。

4

1 回答 1

0

这是因为 rails CSRF令牌验证。有几种不同的方法可以解决这个问题:

  1. Hacky,肮脏的快捷方式 - 只需让 AJAX 调用使用 HTTP GET 而不是 POST。GET 默认不会查找 CSRF 令牌
  2. 另一个肮脏的捷径 - 关闭控制器中此特定操作的 CSRF 验证

    protect_from_forgery :except => :create
    
  3. 使用 AJAX 调用正确实现 CSRF 令牌,那里有很多指南,例如this onethis one

于 2013-10-07T04:08:19.603 回答