[英]How to catch an exception in VB.NET when using jQuery ajax
我正在使用jQuery處理以VB編碼的ASP.NET網站的所有ajax需求。 當我使用內置的$ .ajax函數將其POST到代碼隱藏函數時,出現一個異常,它只是退出該函數,並在客戶端顯示錯誤。
除了使編碼時的調試困難之外,更大的問題是,發生這些異常時,Global.asax中的Application_Error函數不會觸發。 這使得幾乎不可能跟蹤生產錯誤。
為什么它不會冒泡到Application_Error? 將代碼隱藏函數包裝在Catch語句中的答案是嗎?
jQuery ajax函數:
$.ajax({
type: "POST",
url: "page.aspx/GetData",
data: "{'param':'" + param_value + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
processData(msg);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("Error: " + textStatus + " - " + errorThrown);
}
});
VB.NET功能:
<Script.Services.ScriptMethod()> _
<WebMethod()> _
Public Shared Function GetData(ByVal param As Integer) As String
'Parse some data
Return data
End Function
我想通了。 盡管我沒有找到直接獲取引發Application_Error事件的錯誤的方法,但我在jQuery XMLHttpRequest對象上發現了一個包含實際異常文本的屬性。
這是一個在警報中顯示錯誤的示例:
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("Error: " + XMLHttpRequest.responseText);
}
另一個想法是通過AJAX將錯誤提交到將處理所有錯誤事件邏輯的Web方法。
使用.Net 3.5,您可以拉入ScriptManager對象並向其中注冊您的javascript,這使.Net可以管理腳本(對於MS Ajax,它不是jsut,它與第三方庫一起使用),這可能是一個解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.