Ajax Post中的CSRF cookie

时间:2013-12-02 17:09:13

标签: php jquery ajax codeigniter csrf

我使用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() ?>'

这是怎么做到的?

2 个答案:

答案 0 :(得分:1)

你真的只需要获取值并将其附加到数据参数

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

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

答案 1 :(得分:-2)

腓:

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

jQuery的:

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