gpt4 book ai didi

javascript - 使用数据表 ajax url 的 Codeigniter CSRF 保护

转载 作者:行者123 更新时间:2023-11-30 15:40:32 25 4
gpt4 key购买 nike

我正在使用 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
},
});
}

显然这会显示“您请求的操作不被允许。”消息,

如何在 Ajax 检索数据中传递 csrf?

最佳答案

将其作为 Ajax 函数中的 header 传递:

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 请求,您应该为所有请求设置一个全局 header :

$.ajaxSetup( {
headers: {
'CSRFToken': TOKEN //replace by your name/value
}
});

或者将名称/值对作为数据的一部分发送:

$('#myTable').DataTable( {
ajax: {
url: '...',
data: function ( d ) {
d.csrfName = csrfValue;
}
}
} );

Source

关于javascript - 使用数据表 ajax url 的 Codeigniter CSRF 保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40903570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com