【发布时间】:2013-06-11 06:00:19
【问题描述】:
我正在尝试从 httphandler 到 javascript 前端捕获异常。 问题是 xhr responsetext 包含完整的 html。
我没有找到任何有效的方法来提取实际的错误信息
有什么想法吗?
【问题讨论】:
标签: c# javascript .net httphandler
我正在尝试从 httphandler 到 javascript 前端捕获异常。 问题是 xhr responsetext 包含完整的 html。
我没有找到任何有效的方法来提取实际的错误信息
有什么想法吗?
【问题讨论】:
标签: c# javascript .net httphandler
嗯,这取决于您实际需要什么。 如果您需要将当前错误消息发送到 UI,那么您可以这样做:
public class ClientErrorHandler : FilterAttribute, IExceptionFilter
{
public void OnException(ExceptionContext filterContext)
{
if (filterContext.HttpContext.Request.IsAjaxRequest())
{
var response = filterContext.RequestContext.HttpContext.Response;
response.Write(filterContext.Exception.Message);
response.ContentType = MediaTypeNames.Text.Plain;
filterContext.ExceptionHandled = true;
}
}
}
您可以在需要的地方添加此属性(甚至可以是基本控制器或作为全局过滤器),它会检查传入的请求是否来自 javascript,如果是,则仅写入响应错误消息。
如果你不需要实际的消息,你可以简单地查看返回请求的状态码:
$.ajax({
statusCode: {
500: function(xhr) {
if(window.console) console.log(xhr.responseText);
}
}
});
【讨论】:
找到答案
在后端。将 Response.StatusCode 设置为 500 并使用 Response.Write 编写您的异常消息
【讨论】: