2013-02-18 36 views
0

我有一個名爲A.aspx的頁面,它使用load jQuery方法加載B.aspx。就像這樣:如何使用jQuery加載方法處理服務器端異常?

$('#doclist').load('Documents.aspx #div1', { idMsg: $(this).data('cid') }, function (response, status, xhr) { 
      if (status == "error") { 
       var msg = "Error."; 
       $('#doclist').html("<span>" + msg + xhr.status + " " + xhr.statusText + ". " + "</span>"); 
      } 
     }); 

這可以處理異常這樣的404500 Internal server error。 B頁面從DataBase中檢索數據,被拋出,但沒有被load jQuery方法捕獲。

我不會在代碼背後做任何事情。

回答

0

500 Internal server error的響應是腳本只有在服務器上沒有附加代碼時纔會得到的響應。

考慮用您需要的數據返回JSON而不是HTML頁面。這樣您可以將自定義錯誤作爲替代結果。即爲成功{"result": ....}並在出現錯誤的情況下:{"error":"Nice error explanation"}

+0

但我的頁面有一個複雜的listview,並且會非常難以返回一個json並將其映射到一個表。 – anmarti 2013-02-18 17:15:04

+0

希望這個鏈接可以幫助你http://www.rqna.net/qna/ttrvq-handle-session-timeout-in-generic-http-handler.html – 2013-02-19 05:34:45