如何在jqgrid的laravel 5.4版本中传递csrf标记?
问题描述:
试图从ace admin jqgrid模板传递csrf标记。如何在jqgrid的laravel 5.4版本中传递csrf标记?
jQuery(grid_selector).jqGrid({
data: grid_data,
datatype: "local",
height: 250,
colNames:[' ', 'ID', 'Name', 'Email'],
colModel:[
{name:'myac', index:'', width:80, fixed:true, sortable:false,
resize:false,
formatter:'actions',
formatoptions:{
keys:true,
delOptions:{recreateForm: true, beforeShowForm:beforeDeleteCallback},
editformbutton:true,
editOptions:{recreateForm: true, beforeShowForm:beforeEditCallback, beforeSubmitCell: beforeSubmitCell}
}
},
{name:'id',index:'id', width:60, sorttype:"int", editable: true},
{name:'name',index:'name', width:150,editable: true, editoptions:{size:"30",maxlength:"50"}},
{name:'email',index:'email', width:150,editable: true, editoptions:{size:"30",maxlength:"50"}}
],
viewrecords : true,
rowNum:10,
rowList:[10,20,30],
pager : pager_selector,
altRows: true,
//toppager: true,
multiselect: true,
//multikey: "ctrlKey",
multiboxonly: true,
loadComplete : function() {
var table = this;
setTimeout(function(){
styleCheckbox(table);
updateActionIcons(table);
updatePagerIcons(table);
enableTooltips(table);
}, 0);
},
editurl: "{{ route('adminCrud', ['menu' => 'users', 'oper' => 'edit']) }}",
caption: "Users Listings"
});
function beforeSubmitCell(rowid,celname,value,iRow,iCol) {
alert('rowid => ', rowid);
return {token:'test'}
}
它没有进入beforeSubmitCell,应该做什么。在所有crud操作中,csrf标记应该如何以及在哪里传递?
答
将csrf_token
添加到postData
和editData
选项。像下面的东西。
jQuery(grid_selector).jqGrid({
postData: { "_token": {{ csrf_token() }} },
editData: { "_token": {{ csrf_token() }} },
....
....
+0
editData不是网格选项的一部分,但它是编辑或添加选项的一部分。 editData应该添加在editoptions对象中以便工作 –
+0
@xmhafiz,这个工作适合我 – Mithun
beforeSubmitCell在cellEdit打开时触发。您可以使用格式编辑器进行表单编辑。事件永远不会开火。 –
那么,这是什么解决方案? – Mithun