如何捕捉异常从.net httphandler在javascript

本文关键字:httphandler javascript net 何捕捉 异常 | 更新日期: 2023-09-27 18:17:53

我试图从httphandler到javascript前端捕获异常。问题是xhr responsetext包含一个完整的html。

我没有找到任何有效的方法来提取实际的错误信息

任何想法?

如何捕捉异常从.net httphandler在javascript

嗯,这取决于你实际需要什么。如果你需要获取当前的错误信息到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);
    }
  }
});

找到答案了

在后端。设置响应。StatusCode为500并使用Response编写异常消息。写