我想在我的CodeIgniter应用程序上使用Ajax (带有JQuery插件数据表),但是当我输入控制器的地址时,我得到了一个403错误。我使用的是Codeigniter的3.1.8版本。我的代码:
$('#Table').DataTable( {
"processing": true,
"serverSide": true,
ajax: {
url: '<?= base_url('myController/data');?>',
"type": "POST"
},
"columns": [
{ "data": "col1" },
{ "data": "col2" },
{ "data": "col3" },
]
} );我尝试将$config‘’csrf_regenerate‘设置为false,但没有任何更改
发布于 2018-05-26 18:46:29
您还需要一个csrf令牌才能与ajax数据一起传递。如果没有它,你会得到403错误。由于$ config‘’csrf_regenerate‘在您的配置中为false,因此您只需获取一次令牌值,并在所有请求中使用它。
使用下面的函数获取令牌名称并为其获取一个值。
$this->security->get_csrf_token_name();
$this->security->get_csrf_hash();在控制器方法中,使用上述方法设置$data['csrf_token_name']和$data['csrf_token_hash']的值,这些方法将在下面的视图代码中使用。
$('#Table').DataTable( {
"processing": true,
"serverSide": true,
ajax: {
url: '<?= site_url('myController/data');?>',
"type": "POST",
data: { '<?php echo $csrf_token_name; ?>' : '<?php echo $csrf_token_hash; ?>' }
},
"columns": [
{ "data": "col1" },
{ "data": "col2" },
{ "data": "col3" },
]
} );发布于 2018-05-26 18:07:37
您的Url应如下所示:
url: "<?= base_url('myController/data');?>",发布于 2018-05-26 18:35:18
"url": base_url + 'myController/data',尝试将此作为您的url,在myController中回显,看看您是否要转到该url。
我希望你有权限访问那条路径。
https://stackoverflow.com/questions/50541403
复制相似问题