Codeigniter と jqgrid を使用してアプリケーションを構築しています。最近、セキュリティ上の理由から Codeigniter の組み込みの CSRF 保護を有効にしましたが、jqgrid でいくつかの問題が発生しました。jqgrid がインスタンス化されたときに csrf トークンを渡すことができたので、(csrf トークンを postData に追加することによって) すべてのデータが読み込まれますが、セルを編集するたびに 500 エラーが発生します。合格した。これは、セルを編集するたびに投稿データを確認することで確認できます。editData が必要な場所をいくつか読みましたが、そこにトークンを追加しても、編集 ajax リクエストで渡されないようです。何か案は?
$("#cust_grid").jqGrid({
url:'/ajax/grid',
datatype: 'xml',
mtype: 'POST',
postData: {<?php echo $this->security->get_csrf_token_name().":'".$this->security->get_csrf_hash()."'"; ?>},
editData: {<?php echo $this->security->get_csrf_token_name().":'".$this->security->get_csrf_hash()."'"; ?>},
colNames:['Name1', 'Name2'],
colModel :[
{name:'name1', index:'name1', width:55, search: true},
{name:'name2', index:'name2', width:110, search: true},
],
pager: '#pager',
rowNum:25,
rowList:[10,25,50,100],
sortname: 'name1',
sortorder: 'asc',
viewrecords: true,
gridview: true,
caption: 'Customers',
height: 600,
width: 1200,
shrinkToFit: false,
altRows: true,
cellEdit: true,
cellsubmit: "remote",
cellurl: "/ajax/editCell",
},
{}
);