【发布时间】:2019-09-19 01:03:15
【问题描述】:
在我的代码中,Ajax 第一次可以完美运行,但是当页面第二次加载 ajax 时它无法正常工作我第二次遇到 CSRF 403 错误。
这是我的控制器:
$csrf_name = $this->security->get_csrf_token_name();
$csrf_hash = $this->security->get_csrf_hash();
$output = array("draw" => $draw,"recordsTotal" => $total_records,"recordsFiltered" => $total_records,"data" => $data, $csrf_name => $csrf_hash);
echo json_encode($output);
exit();
这里是s JS:
$(document).ready(function() {
var csrf = jQuery('#csrf_hash').val();
$.fn.dataTable.moment('DD/MM/YYYY');
$('#messages').DataTable({
responsive: true,
iDisplayLength: 50,
"processing": true,
"serverSide": true,
"ajax": {
url : "<?php echo site_url("iot_lora/iot_lora_datatable_ajax") ?>",
type : 'POST',
"data": function(d) {
var frm_data = $('form').serializeArray();
$.each(frm_data, function(key, val) {
d[val.name] = val.value;
});
}
},
"fnDrawCallback" : function(response) {
var new_csrf = '<?php echo $this->security->get_csrf_hash(); ?>';
//alert(new_csrf);
//$("#csrf_hash").val("");
},
});
});
还有我的 ajax 设置:
$(function($) {
$.ajaxSetup({
data: {
'<?php echo $this->security->get_csrf_token_name(); ?>' : '<?php echo $this->security->get_csrf_hash(); ?>'
}
});
});
【问题讨论】:
标签: php ajax codeigniter datatables csrf