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

所以我记得有一次,当我试图做一个AJAXpost时,我不得不将form_authenticity_token作为其中一个数据传递给rails。 出于某种原因,不这样做会产生某种错误,我会立即退出。 有没有办法仍然有这个forms提交的真实性令牌,但不是ajaxpost? 换句话说,我不想在我的post数据中传递autheniticy令牌。

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

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

然后只需提交AUTH_TOKEN以及任何AJAXpost。

资源

根据文档

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

skip_before_filter :verify_authenticity_token