我有一个可以抛出异常的Java Spring MVC控制器.我有一个@ExceptionHandler设置来处理这些错误,我想用它来将异常的消息返回给调用者.
服务器代码是:
@ExceptionHandler(DeviceException.class)
@ResponseStatus(HttpStatus.METHOD_FAILURE)
@ResponseBody
public String handleException(DeviceException ex) {
return ex.getMessage();
}
Run Code Online (Sandbox Code Playgroud)
我已经测试了抛出一个DeviceException并使用来自CLI的Curl获取结果,异常的消息正在响应正文中返回.我无法让jQuery .error处理程序显示它,但我的处理程序代码是:
error: function(jqXHR, textStatus, errorThrown) {
// problem, the data is always blank
alert('jqXHR.responseText = ', jqXHR.responseText);
}
Run Code Online (Sandbox Code Playgroud)
我得到的所有响应文本都是一个空字符串.如何获取@ExceptionHandler返回的字符串以显示在jQuery错误处理程序中?
尝试这样的事情:
var msg = '<div style="padding:20px;">';
msg += "We're sorry, there was an error during your request. Please refresh the page, then try again. If your problem persists, please contact technical support. <br /><br /> <b>Cause:</b> <br /> ";
switch (textStatus) {
case ('timeout'):
msg += 'Request timed out.';
break;
case ('error'):
msg += 'Error status returned.';
break;
case ('abort'):
msg += 'Request was aborted.';
break;
case ('parseerror'):
msg += 'There was an error parsing your request.';
break;
default:
msg += 'No status returned.';
break;
}
$(this).html(msg + ' <br /><br /> ' + errorThrown + ' <br /></div>');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2469 次 |
| 最近记录: |