jQueryajax错误处理,显示自定义异常消息。

jQueryajax错误处理,显示自定义异常消息。

有什么方法可以在jQueryAjax错误消息中显示自定义异常消息作为警报吗?

例如,如果我想在服务器端通过支柱通过throw new ApplicationException("User name already exists");,我想在jQueryAjax错误消息中捕获此消息(“用户名已经存在”)。

jQuery("#save").click(function () {
  if (jQuery('#form').jVal()) {
    jQuery.ajax({
      type: "POST",
      url: "saveuser.do",
      dataType: "html",
      data: "userId=" + encodeURIComponent(trim(document.forms[0].userId.value)),
      success: function (response) {
        jQuery("#usergrid").trigger("reloadGrid");
        clear();
        alert("Details saved successfully!!!");
      },
      error: function (xhr, ajaxOptions, thrownError) {
        alert(xhr.status);
        alert(thrownError);
      }
    });
  }});

在第二个警报中,当我警告抛出的错误时,我得到undefined状态代码是500。

我不知道我哪里出了问题。我能做些什么来解决这个问题?


汪汪一只猫
浏览 2376回答 3
3回答

月关宝盒

确保你正在设置Response.StatusCode不是200块。使用Response.Write那就用.。xhr.responseText.在你的javascript里

萧十郎

服务器端:     doPost(HttpServletRequest request, HttpServletResponse response){              try{ //logic             }catch(ApplicationException exception){                 response.setStatus(400);                response.getWriter().write(exception.getMessage());                //just added semicolon to end of line            }  }客户端: jQuery.ajax({// just showing error property            error: function(jqXHR,error, errorThrown) {                  if(jqXHR.status&&jqXHR.status==400){                     alert(jqXHR.responseText);                 }else{                    alert("Something went wrong");                }           }     });通用Ajax错误处理如果我需要对所有Ajax请求执行一些通用错误处理。我将设置ajaxError处理程序,并将错误显示在html内容顶部名为error容器的div上。$("div#errorcontainer")     .ajaxError(         function(e, x, settings, exception) {             var message;             var statusErrorMap = {                 '400' : "Server understood the request, but request content was invalid.",                 '401' : "Unauthorized access.",                 '403' : "Forbidden resource can't be accessed.",                 '500' : "Internal server error.",                 '503' : "Service unavailable."             };             if (x.status) {                 message =statusErrorMap[x.status];                                 if(!message){                                       message="Unknown Error \n.";                                   }             }else if(exception=='parsererror'){                 message="Error.\nParsing JSON Request failed.";             }else if(exception=='timeout'){                 message="Request Time out.";             }else if(exception=='abort'){                 message="Request was aborted by the server";             }else {                 message="Unknown Error \n.";             }             $(this).css("display","inline");             $(this).html(message);                  });

芜湖不芜

主计长:public class ClientErrorHandler : FilterAttribute, IExceptionFilter{     public void OnException(ExceptionContext filterContext)     {         var response = filterContext.RequestContext.HttpContext.Response;         response.Write(filterContext.Exception.Message);         response.ContentType = MediaTypeNames.Text.Plain;         filterContext.ExceptionHandled = true;     }}[ClientErrorHandler]public class SomeController : Controller{     [HttpPost]     public ActionResult SomeAction()     {         throw new Exception("Error message");     }}视图脚本:$.ajax({     type: "post", url: "/SomeController/SomeAction",     success: function (data, text) {         //...     },     error: function (request, status, error) {         alert(request.responseText);     }});
打开App,查看更多内容
随时随地看视频慕课网APP