我正在研究与API交互的Rails应用程序。现在有一个步骤,API将POST请求发送到应用程序,我尝试将返回的数据保存到数据库。但看起来应用程序不接受数据并返回422:Unprocessable Entity
以下是日志文件中的错误消息
W, [2016-02-29T12:21:54.865291 #22727] WARN -- : Can't verify CSRF token authenticity
I, [2016-02-29T12:21:54.865839 #22727] INFO -- : Completed 422 Unprocessable Entity in 1ms (ActiveRecord: 0.0ms)
F, [2016-02-29T12:21:54.870852 #22727] FATAL -- :
ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):
actionpack (4.2.4) lib/action_controller/metal/request_forgery_protection.rb:181:in `handle_unverified_request'
actionpack (4.2.4) lib/action_controller/metal/request_forgery_protection.rb:209:in `handle_unverified_request'
actionpack (4.2.4) lib/action_controller/metal/request_forgery_protection.rb:204:in `verify_authenticity_token'
我也试过禁用CSRF
class MyController < ApplicationController
skip_before_action :verify_authenticity_token
end
但它仍然不起作用。
请帮我解决这个问题。我已经在这个问题上苦苦挣扎了三天。
答案 0 :(得分:0)
你可以试试这个
protect_from_forgery with: :null_session, if: Proc.new { |c| c.request.format == 'application/json' }