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

第二种: 
修改配置文件config\environments\development.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个方法时禁止这个功能

上一篇:Effective C++ -----条款02:尽量以const, enum, inline替换 #define


下一篇:【MySQL】MySQL视图创建、查询。