在rails中执行AJAX Post而不传入authenticity_token

时间:2012-01-13 21:01:20

标签: jquery ruby-on-rails ajax ruby-on-rails-3

所以我记得有一次,当我试图做一个AJAX帖子时,我不得不将form_authenticity_token作为其中一个数据传递给rails。出于某种原因,不这样做会产生某种错误,我会立即退出。有没有办法让这个真实性令牌用于表单提交但不能用于ajax帖子?换句话说,我不想在我的帖子数据中传递autheniticy标记。

2 个答案:

答案 0 :(得分:4)

根据documentation

  

您可以逐个控制器禁用csrf保护:

     

skip_before_filter :verify_authenticity_token

答案 1 :(得分:2)

您可以将其传递给javascript,而不是禁用真实性令牌验证:

<%= javascript_tag "var AUTH_TOKEN = #{form_authenticity_token.inspect};" if protect_against_forgery? %>

然后只需提交AUTH_TOKEN以及任何AJAX帖子。

Source