所以我记得有一次,当我试图做一个AJAX帖子时,我不得不将form_authenticity_token作为其中一个数据传递给rails。出于某种原因,不这样做会产生某种错误,我会立即退出。有没有办法让这个真实性令牌用于表单提交但不能用于ajax帖子?换句话说,我不想在我的帖子数据中传递autheniticy标记。
答案 0 :(得分:4)
您可以逐个控制器禁用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帖子。