请帮助 Rails 中的新手 :) 我在课堂protect_from_forgery
上没有任何属性的调用(默认情况下给出) 。ApplicationController
基本上这里的代码:
class ApplicationController < ActionController::Base
helper :all # include all helpers, all the time
protect_from_forgery
helper_method :current_user_session, :current_user
filter_parameter_logging :password, :password_confirmation
我认为它应该做的是:它应该防止任何没有正确的 POST 请求authenticity_token
。但是当我像下面这样使用 jQuery 发送 post 请求时,它工作正常(在数据库中执行了更新语句)!
$.post($(this).attr("href"), { _method: "PUT", data: { test: true } });
我在控制台中看到authenticity_token
发送的参数中没有,但请求仍然被认为是有效的。这是为什么?
UPD 在 config/environments/development.rb 中找到配置设置
config.action_controller.consider_all_requests_local = true
由于 DEV 环境和本地请求,这些 jQuery post 请求是可以的。