AJAX期间未处理的异常

时间:2012-11-21 12:21:16

标签: c# asp.net elmah

我正在尝试为AJAX期间发生的无法处理的异常实现某种处理程序,但由于我是新手,我似乎无法掌握它。我在测试设置中遇到的情况是,发生异常时没有任何内容返回给客户端。此外,ELMAH并未处理这些例外情况。

所以这个问题有两个部分:

  1. 如何让服务器发回有意义的内容,例如错误代码和消息,以便通知客户。
  2. 如何让ELMAH记录AJAX回调期间发生的异常?
  3. 感谢。

2 个答案:

答案 0 :(得分:1)

您是否可以尝试/捕获服务器端代码然后传递有意义的内容,以便客户端可以输出有用的错误消息?

我不确定为什么ELMAH没有记录你的未捕获的异常,如果它出现在服务器端。你确定它会捕获其他错误吗?

答案 1 :(得分:1)

$.ajax({
    type: "post", url: "/SomeController/SomeAction",
    success: function (data, text) {
        //...
    },
    error: function (request, status, error) {
        alert(request.responseText);
    }
});

或通用处理程序

$(function() {
    $.ajaxSetup({
        error: function(jqXHR, exception) {
            if (jqXHR.status === 0) {
                alert('Not connect.\n Verify Network.');
            } else if (jqXHR.status == 404) {
                alert('Requested page not found. [404]');
            } else if (jqXHR.status == 500) {
                alert('Internal Server Error [500].');
            } else if (exception === 'parsererror') {
                alert('Requested JSON parse failed.');
            } else if (exception === 'timeout') {
                alert('Time out error.');
            } else if (exception === 'abort') {
                alert('Ajax request aborted.');
            } else {
                alert('Uncaught Error.\n' + jqXHR.responseText);
            }
        }
    });
});