Rails 3:无法验证CSRF令牌的真实性

时间:2012-12-26 10:44:31

标签: ruby-on-rails ruby-on-rails-3

当我尝试通过我的REST客户端发布数据时,我收到类似这样的警告

Warning :Can't verify CSRF token authenticity.

如何解决这个问题。

3 个答案:

答案 0 :(得分:7)

我相信您正试图从POST制作link。默认情况下,links不应提出POST个请求,只能提出GET个请求。因此,当您尝试与服务器建立连接时,Rails会向您发出警告 绕过此类行为的一种方法是使用link,而不是使用form。因此,您可以向服务器发出正确的POST请求 或者,您可以从protect_from_forgery中删除application_controller行,因此Rails不会执行此类验证,但我们不建议这样做。

答案 1 :(得分:1)

你可以这样做,(但不推荐:)),跳过伪造保护

例如:您要将数据发布到PostController =>创建行动

class PostsController < ApplicationController

   before_filter :protect_from_forgery, :except => [:create]  

   def create
        #your method
   end
end

但话虽如此,我确信应该有更好的方法来做你想做的事,所以如果你能解释你想做什么,有人可以提供帮助

HTH

答案 2 :(得分:1)

nop

我错过了我的application.js中的以下行

//= require jquery_ujs

我取而代之的是它的工作......