更新时间:2023-02-16 18:54:23
我能够发送自定义错误消息(Java字符串)返回一个jQuery的客户端这种方式。我想我的自定义消息可以换成你想要的异常信息/需要
公共静态无效handleRuntimeException(异常前,HttpServletResponse的
对此,字符串消息){
logger.error(前);
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
。response.getWriter()写(消息);
response.flushBuffer();
}
displayError:功能(jqXHR,textStatus,errorThrown){
如果(jqXHR.responseText!==''){
警报(textStatus +:+ jqXHR.responseText);
}其他{
警报(textStatus +:+ errorThrown);
}
}
希望这有助于/
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 information back up to Javascript? In a test I caught the exception in Java and set the HTTP status code to 500. This caused the $.ajax error handler to be called, as expected. the args to the error handler don't really contain any useful information. I'd ideally like to propagate the Exception.getMessage() string back to the error handler somehow, but don't know how.
function handleClick() {
var url = '/backend/test.json';
$.ajax({
type: "POST",
url: url,
cache: false,
dataType: "json",
success: function(data){
alert("it worked");
},
error: function(jqXHR, textStatus, errorThrown) {
alert(jqXHR);
alert(textStatus); // this comes back as "error"
alert(errorThrown); // this comes back as "undefined"
}
});
}
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
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();
}
displayError:function(jqXHR, textStatus, errorThrown){
if(jqXHR.responseText !== ''){
alert(textStatus+": "+jqXHR.responseText);
}else{
alert(textStatus+": "+errorThrown);
}
}
Hope this helps/