我正在尝试为 AJAX 期间发生的未处理异常实现某种处理程序,但由于我是新手,我似乎无法掌握它。我在测试设置中所经历的是,发生异常时没有任何内容返回给客户端。此外,ELMAH 没有处理这些异常。
所以这个问题有两个部分:
- 如何让服务器发回一些有意义的东西,比如错误代码和消息,以便通知客户端。
- 如何让 ELMAH 记录 AJAX 回调期间发生的异常?
谢谢。
你能不能围绕你的服务器端代码做一个尝试/捕捉,然后传递一些有意义的东西,以便客户端可以输出有用的错误消息?
我不确定为什么 ELMAH 没有记录你未捕获的异常,如果它发生在服务器端。您确定它会捕获其他错误吗?
$.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);
}
}
});
});