簡體   English   中英

使用jQuery Ajax時如何在VB.NET中捕獲異常

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM