启用CodeIgniter CSRF保护时,GroceryCRUD添加、编辑按钮不工作
我正在使用1.5.0和2.2.0 启用CodeIgniter的内部CSRF保护时:启用CodeIgniter CSRF保护时,GroceryCRUD添加、编辑按钮不工作,codeigniter,csrf-protection,grocery-crud,Codeigniter,Csrf Protection,Grocery Crud,我正在使用1.5.0和2.2.0 启用CodeIgniter的内部CSRF保护时: $config['csrf_protection'] = TRUE; 在application/config/config.php中,GroceryCRUD自动生成的操作按钮(编辑、查看)和链接(添加)不再工作 似乎CSRF令牌没有在Ajax调用中传递(通过Firebug确认)。可以将此CodeIgniter功能用于GroceryCRUD 我终于设法解决了我的问题。有两种选择: 简单的方法: 设置: 在appl
$config['csrf_protection'] = TRUE;
在application/config/config.php
中,GroceryCRUD自动生成的操作按钮(编辑、查看)和链接(添加)不再工作
似乎CSRF令牌没有在Ajax调用中传递(通过Firebug确认)。可以将此CodeIgniter功能用于GroceryCRUD 我终于设法解决了我的问题。有两种选择: 简单的方法: 设置: 在
application/config/groundry_crud.php
中
此选项在未启用CSRF保护的情况下运行良好(即,可以将其设置为true
,以生成更优雅的表单),但如果在javascript中未进行任何代码修改,则设置此选项将失败
优雅的方式:
如果我们想使用:
$config['grocery_crud_dialog_forms'] = true;
在application/config/screery_crud.php
中创建可爱的表单,然后:
$(文档).ready(函数(){
var csrf_token=$.cookie('csrf_cookie_name');
$.ajaxSetup({
数据:{
“csrf\u测试\u名称”:csrf\u令牌
}
});
});代码>我终于设法解决了我的问题。有两种选择:
简单的方法:
设置:
在application/config/groundry_crud.php
中
此选项在未启用CSRF保护的情况下运行良好(即,可以将其设置为true
,以生成更优雅的表单),但如果在javascript中未进行任何代码修改,则设置此选项将失败
优雅的方式:
如果我们想使用:
$config['grocery_crud_dialog_forms'] = true;
在application/config/screery_crud.php
中创建可爱的表单,然后:
在表单的页面中包含
将此代码添加到JS文件中,以便在所有ajax POST调用中自动神奇地插入CSRF令牌:
$(文档).ready(函数(){
var csrf_token=$.cookie('csrf_cookie_name');
$.ajaxSetup({
数据:{
“csrf\u测试\u名称”:csrf\u令牌
}
});
});代码>以防有人出现相同的错误:对于CI 3.0.1和GroceryCRUD 1.5.1,cookie与AJAX请求一起正确发送,但是由于令牌发生更改,只有第一个请求才能工作
要始终使用相同的令牌,请设置(在application/config/config.php
中):
编辑:供参考的手册:以防有人出现相同的错误:对于CI 3.0.1和GroceryCRUD 1.5.1,cookie与AJAX请求一起正确发送,但是由于令牌更改,只有第一个请求才能工作
要始终使用相同的令牌,请设置(在application/config/config.php
中):
编辑:参考手册:
$config['csrf_regenerate'] = FALSE;