我想在CodeIgniter框架中标记生成CSRF,因此我将csrf标记更改启用为真。
$.ajaxSetup({
headers: {
'<?php echo $this->security->get_csrf_token_name(); ?>' : '<?php echo $this->security->get_csrf_hash(); ?>'
}
});
$(document).on('click', '.update', function(){
var id = $(".data-check:checked").val();
$.ajax({
url:"<?php echo base_url(); ?>MasterPartTypeController/part_type_fetch_getbyid",
method:"POST",
data:{id:id},
dataType:"json",
success:function(data)
{
$('#part_type').val(data.part_type);
$('#description').val(data.description);
$('#id').val(id);
$(".ui-page-toggler" ).slideToggle("slow");
$('.ui-page-toggler').removeClass('hide');
$('#action').val("Edit");
}
})
});
403禁止
答案 0 :(得分:0)
我认为问题是codeigniter在帖子vars中而不是标题中查找。我在头文件的顶部使用以下代码:
var token = {};
token['<?php echo $this->security->get_csrf_token_name(); ?>'] = '<?php echo $this->security->get_csrf_hash(); ?>';
jQuery.ajaxSetup({
data: token,
type: 'POST',
error: function (jqXHR, textStatus, errorThrown) {
if (jqXHR.status == 404) {
alert('AJAX page not found.');
} else {
console.error('AJAX Error: ' + textStatus + ': ' + errorThrown);
}
}
});