【问题标题】:How to catch exception from .net httphandler at javascript?如何在 javascript 中从 .net httphandler 中捕获异常?
【发布时间】:2013-06-11 06:00:19
【问题描述】:

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

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

有什么想法吗?

【问题讨论】:

    标签: c# javascript .net httphandler


    【解决方案1】:

    嗯,这取决于您实际需要什么。 如果您需要将当前错误消息发送到 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);
        }
      }
    });
    

    【讨论】:

      【解决方案2】:

      找到答案

      在后端。将 Response.StatusCode 设置为 500 并使用 Response.Write 编写您的异常消息

      【讨论】:

        猜你喜欢
        • 2013-11-11
        • 2023-03-31
        • 1970-01-01
        • 2016-09-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-14
        • 1970-01-01
        相关资源
        最近更新 更多