【问题标题】:rails 401 error even after i set X-CSRF-Token header successfully即使我成功设置 X-CSRF-Token 标头,rails 401 错误
【发布时间】:2013-04-20 21:12:35
【问题描述】:

我正在制作一个注册表单,并想使用 jquery-validation 插件来检查 user_name 是否唯一。

路线:

resources :users, :only => [:show] do
  collection do                      
    post 'check_user_name_uniq'     
    get 'check_email'                
    get 'check_password'             
  end  

控制器:

def check_user_name_uniq
  render :json => User.valid_attribute?(:user_name, params[:user][:user_name]).to_json
end

javascript:

$("#new_user").validate({
  debug: true,
  rules: {
    "user[user_name]": {
      required: true,           
      remote: {
        url:  "/users/check_user_name_uniq", // check user_name uniqueness
        type: "POST",
        dataType: "json"
      }
    }                                        
  },...

我通过以下方式设置 X-CSRF-Token 标头:

$.ajaxSetup({
  beforeSend: function(jqXHR) {
    jqXHR.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'));
  }
});

但是当我输入用户名时,仍然出现 401 错误:

Started POST "/users/check_user_name_uniq" for 192.168.157.1 at 2013-04-26 23:52:22 +0800
Processing by UsersController#check_user_name_uniq as JSON
  Parameters: {"user"=>{"user_name"=>"tomwang"}}
Completed 401 Unauthorized in 36ms

我不知道为什么会发生这个错误,因为他们说标题可以解决它: WARNING: Can't verify CSRF token authenticity rails

【问题讨论】:

    标签: ruby-on-rails-3 jquery-validate csrf


    【解决方案1】:

    您是否确保 <%= csrf_meta_tags %> 出现在您的布局中?

    【讨论】:

      猜你喜欢
      • 2017-05-14
      • 2016-10-03
      • 2018-09-06
      • 2021-03-18
      • 2021-05-14
      • 2011-11-15
      • 2016-03-29
      • 2015-09-13
      • 2012-11-04
      相关资源
      最近更新 更多