我使用Codeigniter和jqgrid構建應用程序。出於安全原因,我最近啓用了Codeigniter的內置CSRF保護,並使用jqgrid打破了一些內容。當jqgrid被實例化時,我已經能夠傳遞csrf標記,以便加載所有數據(通過向postData添加csrf標記),但是現在隨時編輯單元格時,我得到一個500錯誤,因爲csrf標記不存在通過。每次編輯單元格時,我都可以通過查看發佈數據來驗證這一點。我閱讀了editData是我想要的幾個地方,但在那裏添加令牌似乎沒有通過編輯ajax請求傳遞它。有任何想法嗎?通過單元格上的jqgrid傳遞csrf令牌
$("#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",
},
{}
);
實際上,它看起來像我的問題很相似,這[一](HTTP ://stackoverflow.com/questions/10511521/codeigniter-with-jqgrid-use-csrf-token?rq = 1) 但那一個沒有答案:( – Erreth