【发布时间】:2013-10-18 15:01:33
【问题描述】:
我有两个表格,带有选项remote: true;一个向create action 发送Ajax 请求,另一个向destroy action 发送Ajax 请求。
启用 JavaScript 后一切正常,但如果我禁用 JavaScript,然后单击,我会收到此错误:
ActionController::InvalidAuthenticityToken PersonsController#create
为什么会显示此错误,我该如何解决?
注意:我使用的是 Rails 4
更新
当我使用没有选项remote: true 的普通表单时,rails 会自动为身份验证令牌插入一个隐藏字段,但是当我在表单中使用remote: true 时,HTML 代码中没有这样的字段。似乎当有remote 选项时,Rails 会以不同的方式处理身份验证令牌,那么我如何才能让它在这两种情况下都能正常工作?
【问题讨论】:
-
medBo,检查您的表单在 html 输出中是否有
csrf标记。如果不是,那可能就是原因。 -
@BillyChan 在表单的 html 中没有 csrf 令牌!我正在使用 rails 4 我认为这是设计使然?还是什么?
-
medBo,检查我的更新。
标签: ruby-on-rails ruby-on-rails-4