How to return Java Exception info to jQuery.ajax REST call?

前端 未结 2 597
[愿得一人]
[愿得一人] 2021-01-05 16:37

I have some jQuery code that makes a REST call to a Java back end. Processing of the back end function could encounter an Exception. What is the best way to get this infor

相关标签:
2条回答
  • 2021-01-05 16:56

    Use the servlet response object's sendError method, which lets you set the status code and status text message.

    Documentation

    Example EDIT

    The jqXHR parameter gives you access to all of the response information including the status message.

    jqXHR.statusText will give you the status message passed in to the sendError method.

    If you need more than a short message you can write data to the response output and get that from jqXHR.responseText or jqXHR.responseXML.

    0 讨论(0)
  • 2021-01-05 17:00

    I was able to send a custom error message (java String) back to a jQuery based client this way. I think my custom message can be replaced with the exception info you want/need

    in Controller:

    public static void handleRuntimeException(Exception ex, HttpServletResponse 
                                              response,String message) {
            logger.error(ex);
            response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
            response.getWriter().write(message);
            response.flushBuffer();
    }
    

    In client/javascript (called from ajax on error event)

    displayError:function(jqXHR, textStatus, errorThrown){
       if(jqXHR.responseText !== ''){
            alert(textStatus+": "+jqXHR.responseText);
        }else{
            alert(textStatus+": "+errorThrown);
        }  
    }
    

    Hope this helps/

    0 讨论(0)
提交回复
热议问题