doc*_*lic 5 ajax ruby-on-rails csrf ruby-on-rails-4
我在一个页面上有两个表单,它们的声明如下:
form_for @student, {remote:true, format: 'json'} do |f|
和
form_for @teacher, {remote:true, format: 'json'} do |f|
但是,当我单击表单的提交按钮时teacher,它会出错,显示该请求的“CRSF 令牌无效”。对表格的请求student工作正常。
我已经<%= csrf_meta_tags %>进入主application.html.erb文件,并且teacher表单在提交中确实有一个 CSRF 令牌。我不是在做 API,我只是希望通过 AJAX 处理表单(我做了一些客户端错误处理和确认)。
根据 Rails 文档,您需要禁用 json 请求的 CSRF 保护:http://api.rubyonrails.org/classes/ActionController/RequestForgeryProtection.html
请务必记住,XML 或 JSON 请求也会受到影响,如果您正在构建 API,则需要类似以下内容:
Run Code Online (Sandbox Code Playgroud)class ApplicationController < ActionController::Base protect_from_forgery skip_before_action :verify_authenticity_token, if: :json_request? protected def json_request? request.format.json? end end
也可以看看:
| 归档时间: |
|
| 查看次数: |
1101 次 |
| 最近记录: |