当我碰到一些真实性令牌问题时,我正在开发新的Rails 4应用程序(在Ruby 2.0.0-p0上)。Rails 4真品令牌
在写一个控制器,响应JSON(使用respond_to
类的方法),我到了create
行动我开始ActionController::InvalidAuthenticityToken
例外,当我试图创建一个使用curl
纪录。
我确定我设置了-H "Content-Type: application/json"
,并将数据设置为-d "<my data here>"
,但仍然没有运气。
我尝试使用Rails 3.2编写相同的控制器(在Ruby 1.9.3上),并且我没有任何真实性令牌问题。我搜索了四周,我发现Rails 4中的真实性令牌发生了一些变化。根据我的理解,它们不再自动插入到表单中了?我想这会以某种方式影响非HTML内容类型。
有什么办法可以解决这个问题,而不必申请一个HTML表单,抢走真实性标记,然后用该标记发出另一个请求?还是我完全错过了一些完全明显的东西?
编辑:我只是想用一个支架不改变任何东西在一个新的Rails创造了新的记录4应用程序,我遇到了同样的问题,所以我想这不是我做的事。
你可以一起删除:with选项:null_session是默认值:http://api.rubyonrails.org/classes/ActionController/RequestForgeryProtection/ClassMethods.html – Casey 2013-08-20 20:29:52
有没有办法使用异常的非JSON JSON调用(aka API调用)的调用和空会话? – 2014-01-09 14:38:05
@JamesMcMahon您可以编写自己的'before_action'来检查格式和请求是否被验证。我不知道任何建立条件的方式。 – alexcoco 2014-01-09 15:11:35