![](/img/trans.png)
[英]Codeigniter AJAX JQuery csrf_protection star rating script
[英]Codeigniter CSRF protection with datatables ajax url
我正在使用codeigniter,并且我们已启用CSRF保护,
$config['csrf_protection'] = TRUE;
我们已经使用了:
`<input type="hidden" name="<?php echo $this->security->get_csrf_token_name(); ?>" value="<?php echo $this->security->get_csrf_hash(); ?>">`
在表单提交及其正常工作中,
但是我的应用程序还使用DataTables通过AJAX获取服务器数据,
var handleDataTable = function () {
var table = $('#my_table').DataTable({
"ajax": {
"url" : baseURL + "user/core/data/"+report_id,
"dataType" : "json",
"type" : "POST", // ajax source
},
});
}
显然,这将显示“ The action you have requested is not allowed.
”消息,
如何在Ajax中通过csrf检索数据?
将其作为标头传递到您的Ajax函数中:
var handleDataTable = function () {
var table = $('#my_table').DataTable({
"ajax": {
"url" : baseURL + "user/core/data/"+report_id,
"dataType" : "json",
"type" : "POST", // ajax source
"headers": {
'CSRFToken': TOKEN //replace by your name/value
}
},
});
如果您有许多Ajax请求,则应为所有请求设置一个全局标头:
$.ajaxSetup( {
headers: {
'CSRFToken': TOKEN //replace by your name/value
}
});
或发送名称/值对作为数据的一部分:
$('#myTable').DataTable( {
ajax: {
url: '...',
data: function ( d ) {
d.csrfName = csrfValue;
}
}
} );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.