CSRF cookie in Ajax Post



我使用CodeIgniter框架,并使用此函数对我的新闻帖子进行排序

$(".news-list").sortable({
 opacity: 0.6,
 cursor: 'move',
 update: function(event, ui) {
    var order = $(this).sortable("serialize"); //console.log(order);
   $.ajax({
     type: 'POST',
     url: "<?php echo base_url();?>news/sort_posts/", 
     data: ( order ),
     success: function(data){ console.log('Success'); },
     error: function(data){ console.log("Fail"); }
    })
},
      distance: 15 
});

尽管我必须在config.php中禁用CSRF才能使其工作,因为CSRF cookie不包括在内。

因此,对于我想要发送的订单阵列:

<?php echo $this->security->get_csrf_token_name() ?> : '<?php echo $this->security->get_csrf_hash() ?>'

这是怎么做到的?

您只需要获取值并将其附加到数据参数

<?php
$token = $this->security->get_csrf_token_name() . '=' . $token = $this->security->get_csrf_hash();
?>

var order = $(this).sortable("serialize");
order += "&csrf=<?php echo $token; ?>"

Php:

$token = '&'.$this->security->get_csrf_token_name().'='.$this->security->get_csrf_hash();

jQuery:

order += "<?php echo $token; ?>"; 

最新更新