asp.net - 使用 jQuery ajax 时如何在 VB.NET 中捕获异常

标签 asp.net jquery vb.net ajax exception

我使用 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 方法。

关于asp.net - 使用 jQuery ajax 时如何在 VB.NET 中捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/265403/

相关文章:

asp.net 和跨站点请求伪造

asp.net - jquery UI 对话框和 Asp.net UpdatePanel

vb.net - 如何在之前执行的基础上加载表单?

vb.net - 保存到文本,收到错误消息

asp.net - IIS 8.5 低 minBytesPerSecond 不适用于慢速 HTTP POST

c# - 找不到如何使用 HttpContent

jQuery $ ("#field") 为空?

悬停时 jQuery 淡入无效 : div with jpg inside div

javascript - 如何更改 AJax 响应上的图标?

java - 在vb.net中使用IComparable来比较石头剪刀布游戏中的武器(与JAVA中的Comparable相同)