В моем коде 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();
Вот sS 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(); ?>'
}
});
});