rails中ActionController::InvalidAuthenticityToken解决办法

Ror代码 

class FooController < ApplicationController  
   protect_from_forgery :except => :index  
  
   # you can disable csrf protection on controller-by-controller basis:  
   skip_before_filter :verify_authenticity_token  
 end  

第二种: 
修改配置文件configenvironmentsdevelopment.rb 
Ror代码 

# Disable request forgery protection in development environment  
  config.action_controller.allow_forgery_protection = false  


然后重启服务器 
第三种: 
在jquery或form中加入 
Ruby代码 

<%= javascript_include_tag "jquery.js" %>
<%= javascript_include_tag "jquery.dataTables.js" %>
<script type="text/javascript" charset="utf-8">
            $(document).ready(function() {
                var oTable = $('#example').dataTable( {
                    "bProcessing": true,        
                    "bServerSide": true,             
                    "sServerMethod": "POST",
                    "sAjaxSource": '/welcome/table_list',
                    "fnServerParams": function ( aoData ) {aoData.push( {                
                        "name": "<%= request_forgery_protection_token %>", 
                        "value": "<%= form_authenticity_token %>" } );}
                } );
            } );
</script>

第三种是通过jquery 的datatable插件,实质上就是ajax请求数据的

这里推荐使用第三种方法,rails这么做的原因是为了防止CSRF,前2个方法时禁止这个功能

 

原文地址:https://www.cnblogs.com/fanxiaopeng/p/3430793.html