問題:
您需要從JSON 解析錯誤回應並解析錯誤回應將它們顯示在jqGrid 的對話框中。理想情況下,您希望網格檢查“STATUS: 'ERROR'”並相應地顯示所有錯誤訊息。
答案:
遵循 HTTP 協定指南至關重要伺服器和客戶端通訊時。標準的成功回應包括以下內容:
HTTP/1.1 200 OK ... Content-Type: application/json ... {"page":"1",....}
相反,如果URL 不存在,伺服器回應將以:
HTTP/1.1 404 Not Found
jqGrid 依賴HTTP 狀態代碼以決定如何處理伺服器回應。例如,404 狀態代碼表示網格不會嘗試解釋 JSON 資料。
示範程式碼:
示範此概念:
$("#list").jqGrid({ url: 'Unknown.json', // file with this name doesn't exist datatype: 'json', // ... other relevant parameters loadComplete: function () { alert("OK"); }, loadError: function (jqXHR, textStatus, errorThrown) { alert('HTTP status code: ' + jqXHR.status + '\n' + 'textStatus: ' + textStatus + '\n' + 'errorThrown: ' + errorThrown); alert('HTTP message body (jqXHR.responseText): ' + '\n' + jqXHR.responseText); } });
此程式碼將顯示下列警報:
loadComplete: function () { // remove error div if it exists $('#' + this.id + '_err').remove(); }, loadError: function (jqXHR, textStatus, errorThrown) { // remove error div if it exists $('#' + this.id + '_err').remove(); // insert div with the error description before the grid $(this).closest('div.ui-jqgrid').before( '<div>
HTTP 狀態碼: 404
文字狀態:找不到錯誤拋出:錯誤
HTTP 訊息正文(jqXHR.responseText):空
自訂錯誤處理:如果你願意以不同方式處理錯誤回應,您可以使用錯誤HTTP 狀態代碼。以下是 loadError 實作的擴充版本:此函數刪除任何現有的錯誤 div,然後在網格之前插入一個新的 div 以顯示錯誤訊息。可以自訂decodeErrorMessage函數來處理您喜歡的格式的錯誤訊息。 使用displayErrorMessage:免費的jqGrid提供了內建的displayErrorMessage方法,用於在網格上方的錯誤 div。在使用自訂錯誤處理之前,建議測試預設行為以確保其滿足您的需求。以上是如何處理 jqGrid 中的伺服器端錯誤和表單驗證?的詳細內容。更多資訊請關注PHP中文網其他相關文章!