我已經在幾天前開始在我們的項目中使用jqGrid,現在我遇到了一個我無法解決的問題。 下面是我的代碼:jqGrid編輯響應404行未找到
var colModel = JSON.parse(gridResult.ColModel);
var grid = $("#tblGrid").jqGrid({
url: './WebServices/Demand.asmx/GetDemandOpenHoursTwo',
ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
serializeGridData: function (data) {
return JSON.stringify(data);
},
datatype: 'json',
mtype: 'POST',
jsonReader: {
root: function (obj) { return obj.d.rows; },
page: function (obj) { return obj.d.page; },
total: function (obj) { return obj.d.total; },
records: function (obj) { return obj.d.records; }
},
height: 148,
rowNum: 10,
rowList: [10, 20, 30],
colNames: gridResult.Columns,
colModel: colModel,
pager: "#gridPager",
viewrecords: true,
caption: "Öppetider",
hidegrid: false,
toolbar: [true, "top"],
editurl: './WebServices/Demand.ascx/SaveDemandOpenHours',
ajaxRowOptions: { contentType: 'application/json; charset=utf-8' },
serializeRowData: function (data) {
return JSON.stringify(data);
}
});
而且我有一個按鈕,調用該方法saveRow:
toolbar.find('.te-save').click(function() {
gr = grid.getGridParam('selrow');
if (gr !== null) {
grid.saveRow(gr, false);
}
});
一切與數據檢索到網格效果很好。但是當我調用saveRow時,我得到一個狀態爲404和消息NOT FOUND的響應。 我試圖調試這個,因爲檢索工作,我改變editurl到完全相同的URL。然後在函數serializeRowData中,我操作將要發佈的數據,並將其替換爲與發佈到檢索數據的Web服務方法的數據完全相同的數據。 換句話說,當我發佈一個編輯過的行時,我在檢索數據時做了完全相同的請求。因此,檢索正在工作,編輯不是。
我檢查了螢火蟲的請求,我可以看到請求實際上並不完全相同。它們在一個參數上不同。
這是工作的要求有:
Accept: application/json, text/javascript, */*; q=0.01
以及不要求有:
Accept: */*
在他們是相同的其他各方面。 這可能是錯誤嗎? (它必須是這個,因爲其中一個正在工作..)。
任何人都可以幫我解決我的問題嗎?
謝謝。有時你需要的只是另一雙眼睛。不幸的是,我在這個問題上花費了大量時間,卻忽略了這樣一個愚蠢的錯誤。 – John 2011-04-01 10:12:22
@John:不客氣!有時候打字錯誤真的很難找到。 – Oleg 2011-04-01 10:38:39