【问题标题】:Rails 3 : Can't verify CSRF token authenticityRails 3:无法验证 CSRF 令牌的真实性
【发布时间】:2012-12-11 22:42:10
【问题描述】:

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

Warning :Can't verify CSRF token authenticity.

如何解决。

【问题讨论】:

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


【解决方案1】:

我相信您正在尝试从 link 生成 POST。默认情况下,links 不应该发出 POST 请求,只能发出 GET 请求。因此,当您尝试连接到您的服务器时,Rails 会向您发出警告。
绕过这种行为的一种方法是使用form,而不是使用link。因此,您可以向服务器发出正确的POST 请求。
或者,您可以从application_controller 中删除protect_from_forgery 行,因此Rails 不会进行此类验证,但极不推荐这样做。

【讨论】:

    【解决方案2】:

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

    例如:您将数据发布到 PostController => 创建操作

    class PostsController < ApplicationController
    
       before_filter :protect_from_forgery, :except => [:create]  
    
       def create
            #your method
       end
    end
    

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

    HTH

    【讨论】:

    • 我赞成这个是因为我想知道如何处理这个警告,而不是因为我想跳过它。不要跳过防伪保护!
    【解决方案3】:

    没有

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

    //= require jquery_ujs
    

    我更换了它并且它的工作..

    【讨论】:

      猜你喜欢
      • 2017-07-15
      • 2015-07-24
      • 2014-06-16
      • 2012-05-08
      • 2015-12-29
      • 2023-03-26
      • 2016-09-17
      • 2019-07-15
      • 2014-07-04
      相关资源
      最近更新 更多