我在提交ajax請求時收到500錯誤。如果我在配置中關閉CSRF,那麼發佈就起作用。但是,一旦我打開它,然後再次出現500錯誤。使用CI 2.0.x,ajax和CSRF獲取500錯誤
在config.php我有以下值設置:
$config['csrf_token_name'] = 'csrf_test_name';
$config['csrf_cookie_name'] = 'csrf_cookie_name';
我確實有被加載jQuery的cookie,並在我的jQuery文件我有以下代碼:
$('#reorder').sortable({
opacity: '0.5',
update: function(e, ui){
newOrder = $("#reorder").sortable('serialize');
csrf_cookie_name = $.cookie('csrf_cookie_name')
console.log(newOrder);
console.log(csrf_cookie_name);
$.ajax({
csrf_cookie_name: $.cookie('csrf_cookie_name'),
url: "/client/saveOrder",
type: "POST",
data: newOrder,
// complete: function(){},
success: function(feedback){
console.log('success');
$("#feedback").html(feedback);
//$.jGrowl(feedback, { theme: 'success' });
}
});
}
});
的console.log的csrf_cookie_name現在是:cd660b153522bef89dc53f7f95cd6b1d所以我得到它的價值似乎?
最後一個真正簡單的函數在客戶端進行數據處理。通常情況下,我會將其中的一部分分解到模型中,但我試圖保持簡單,直到獲得它的工作。
function saveOrder()
{
$items = $this->input->post('item');
echo '<br/>Items2:' . var_dump($items);
$total_items = count($this->input->post('item'));
for($item = 0; $item < $total_items; $item++)
{
$data = array(
'pageid' => $items[$item],
'rank' => $item
);
$this->db->where('pageid', $data['pageid']);
$this->db->update('pages', $data);
// echo '<br />'.$this->db->last_query();
}
視圖中沒有使用任何表單。這只是一個帶有我收集的LI的UL,我正在進行排序。
我一直在嘗試。我甚至將名字從csrf_cookie_name改爲csrf_token_name,想知道這是否會有所作爲? –