jQuery Ajax error handling, show custom exception messages

前端 未结 21 2737
滥情空心
滥情空心 2020-11-22 01:50

Is there some way I can show custom exception messages as an alert in my jQuery AJAX error message?

For example, if I want to throw an exception on the server side v

21条回答
  •  礼貌的吻别
    2020-11-22 02:21

    ServerSide:

         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
    
               }
     }
    

    ClientSide:

     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");
                   }
              }
        }); 
    

    Generic Ajax Error Handling

    If I need to do some generic error handling for all the ajax requests. I will set the ajaxError handler and display the error on a div named errorcontainer on the top of html content.

    $("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);
                     });
    

提交回复
热议问题