Rails 4 Ajax请求,没有真实性令牌

时间:2014-06-18 13:26:32

标签: jquery ruby-on-rails ajax authenticity-token

我在我的应用程序中通过javascript发送一些非常简单的ajax帖子和补丁请求。功能很好,按预期工作。但是,我没有在ajax请求参数中看到真实性令牌,它仍然有效。

javascript(jQuery)

$.ajax({
  type:'PATCH', 
  url: '/dashboard/goals/#{@goal.id}.js', 
  data: $.param({ 
    new_invitation: { 
      recipient_id: recId, 
      type: "GoalInvite", 
      user_id : #{current_user.id}
    }
  })
}); 

并且参数在日志中显示如下 -

Parameters: {"new_invitation"=>{"recipient_id"=>"24", "type"=>"GoalInvite", "user_id"=>"23"}, "id"=>"234"}

没有真实性令牌。我想我知道如何添加它,但我很惊讶它甚至没有它。任何人都可以对此有所了解吗?

1 个答案:

答案 0 :(得分:12)

如果您检查请求对象,您(希望)会看到有一个名为HTTP_X_CSRF_TOKEN的请求标头包含真实性标记。 jquery_ujs库会为您处理这个问题,因此您不必手动将令牌包含在AJAX请求中。