ajax リクエストを送信すると、500 エラーが発生し続けます。設定で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' });
}
});
}
});
現在、csrf_cookie_name の console.log は次のとおりです: 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 です。