Rails 3:无法验证 CSRF 令牌的真实性
Posted
技术标签:
【中文标题】Rails 3:无法验证 CSRF 令牌的真实性【英文标题】:Rails 3 : Can't verify CSRF token authenticity 【发布时间】:2012-12-11 22:42:10 【问题描述】:当我尝试通过我的 REST 客户端发布数据时,我收到了这样的警告
Warning :Can't verify CSRF token authenticity.
如何解决。
【问题讨论】:
那看看:***.com/questions/7203304/… 【参考方案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
我更换了它并且它的工作..
【讨论】:
以上是关于Rails 3:无法验证 CSRF 令牌的真实性的主要内容,如果未能解决你的问题,请参考以下文章