Pet*_*ter 22 ruby-on-rails ruby-on-rails-5
Ruby版本2.2.4,Rails版本5.0.0.1.
我陷入了测试登录的教程的一部分curl
.我收到一个错误
ArgumentError(在process_action回调之前:尚未定义verify_authenticity_token).
我在sessions_controller中使用了这段代码:
skip_before_action :verify_authenticity_token, :if => Proc.new { |c| c.request.format == 'application/json' }
Run Code Online (Sandbox Code Playgroud)
有人知道答案吗?
Dha*_*udi 21
检查您ApplicationController
是否接到protect_from_forgery
如下电话:
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
end
Run Code Online (Sandbox Code Playgroud)
基本上调用protect_from_forgery
会添加verify_authenticity_token
到before_filter
列表中,您可以在其他控制器中跳过该列表.
有关详细信息,请参阅protect_from_forgery
文档.
Ban*_*eil 10
升级到Rails 5后,我遇到了这个错误.我发现如果skip_before_action
使用相同的方法名称多次调用,则会引发此异常.
我的修复是添加参数raise: false
,第二次skip_before_filter
被调用.
所以它看起来像这样:
skip_before_action :your_method_name, raise: false
Run Code Online (Sandbox Code Playgroud)
升级到 Rails 5 并部署到 Heroku 后,我遇到了这个错误。我无法在开发中重现它。
API 文档中给出了示例
class ApplicationController < ActionController::Base
protect_from_forgery unless: -> { request.format.json? }
end
Run Code Online (Sandbox Code Playgroud)
对我来说,添加unless: -> { request.format.json? }
上面的内容修复了我的堆栈炸弹。raise: false
不幸的是没有。
归档时间: |
|
查看次数: |
10898 次 |
最近记录: |