如何从失败的jQuery请求中获取异常消息?
如果我将jQuery ajax与错误处理程序一起使用,并且我调用的ASP.NET MVC操作引发异常,我希望能够在用户的异常中显示消息。现在我正在使用:如何从失败的jQuery请求中获取异常消息?
$.ajax({
...
error: function(request,status,error) {
var exp = new RegExp('<title>(.*)<\/title>','i');
if (exp.exec(request.responseText)) {
alert(RegExp.lastParen);
}
else {
alert(status);
}
}
});
我希望规范的jQuery实现,而不是滚动我自己的。
对于它的价值,我通常会有任何操作返回包含在try/catch块中的JsonResult,以便它不会抛出异常。相反,我用每个Json数组返回两个参数:“ok”(true/false)和“message”(包含如果出现错误时显示给用户的消息)。
然后我省略$ .ajax“error”参数,并在JsonResult结果的“ok”参数上做一个简单的分支。
没有错,你在做什么,但如果你想要想法......如果请求具有应用程序/ json头,那么将错误序列化为JSON的自定义错误页怎么办?
你能想到一种方法来做到这一点,而不需要实际捕获和消耗异常吗?在我的情况下,这些都是非常特殊的条件,我想让它们冒泡以便它们被记录下来。 – tvanfosson 2009-04-28 11:36:15
您正在寻找的东西更容易比5行代码?真?
第1行解析错误。这是你的服务器的自定义,所以我没有看到任何jQuery的通用工具可以提供帮助。
第2-5行,根据解析显示不同的错误。同样,这是您的服务器自定义的。
我个人不会在这里使用匿名函数(称之为alertUser
或其他),但我没有看到这种方法有什么问题。
+1我也曾想过这件事,但它有点重新定义了“成功”的含义吗? – tvanfosson 2009-04-28 11:32:36
我也做类似的事情,我觉得它允许我做我的日志记录,并控制如何以及向用户显示什么。 – 2009-04-28 14:11:03