zoukankan      html  css  js  c++  java
  • Ajax+MVC异常错误返回

    加入特性
    //JsonExceptionFilterAttribute.cs
        [ AttributeUsage( AttributeTargets.Method | AttributeTargets .Class)]
        public class JsonExceptionFilterAttribute : FilterAttribute,IExceptionFilter
        {
            public void OnException( ExceptionContext filterContext)
            {
                if(filterContext.RequestContext.HttpContext.Request.IsAjaxRequest())
                {
                    filterContext.HttpContext.Response.StatusCode = 500;
                    filterContext.ExceptionHandled = true;
                    //关闭IIS自定义错误
                    filterContext.HttpContext.Response.TrySkipIisCustomErrors =true;
                    filterContext.Result = new JsonResult
                    {
                        Data = new
                        {
                            errorMessage = filterContext.Exception.Message
                        },
                        JsonRequestBehavior = JsonRequestBehavior .AllowGet
                    };
                }
     
            }
        }
     
    //Controller
     [JsonExceptionFilterAttribute ]
    //Ajax错误返回部分
     error: function (XMLHttpRequest, textStatus, errorThrown) {
                        try {
                            var errorJson = {};
      //如果不是Json就当HTML字符串处理
                            if (!XMLHttpRequest.responseText.match("^{(.+:.+,*){1,}}$" )) {
                                //普通字符串处理,
                                var msg = "";
                                $(XMLHttpRequest.responseText).each(function (i, item) {
                                    if (item.nodeName.toLocaleLowerCase() == "title" ) {
                                        msg = $(item).text();
                                    }
                                });
                                alert(msg);
                            }
                            else {
                                //通过这种方法可将字符串转换为对象
                                errorJson = $.parseJSON(XMLHttpRequest.responseText);
                                alert(errorJson.errorMessage);
                            }
                        } catch (e) {
                            alert( "意外的错误" );
                        }
                        hidediv();
     
                    }
  • 相关阅读:
    JavaScript打造很酷的图片放大效果实例代码
    【荐】CSS实现的鼠标点击小图无刷新放大图片代码
    JavaScript+CSS实现的文字幻灯切换代码
    【荐】很棒的图片友情链接带控制按钮的横向滚动代码
    jquery制作一个漂亮带渐隐效果的跑动区域
    JS打造的一款响应鼠标变化很炫的图片特效代码
    JS+CSS控制鼠标移上图片滑出文字提示代码
    Jquery+CSS实现的大气漂亮图片切换效果代码
    【荐】JS+CSS防FLASH效果带倒影的图片切换效果代码
    JavaScript限制对图片右键代码
  • 原文地址:https://www.cnblogs.com/shanhe/p/4010744.html
Copyright © 2011-2022 走看看