2 回答
TA贡献1853条经验 获得超9个赞
我尝试过以下方法,并且有效
@ExceptionHandler(DataAccessException.class)
public Object handleError(HttpServletRequest req, DataAccessException ex) {
logger.error("Request: " + req.getRequestURL() + " raised " + ex);
if("XMLHttpRequest".equals(request.getHeader("X-Requested-With")))
{
ResponseEntity<String> dataExceptionRes=null;
dataExceptionRes=new ResponseEntity<String>(HttpStatus.FORBIDDEN);
return dataExceptionRes;
}
else{
ModelAndView mav = new ModelAndView();
mav.addObject("exception", ex);
mav.addObject("url", req.getRequestURL());
mav.setViewName("error");
return mav;
}
}
TA贡献1786条经验 获得超11个赞
一种方法是确保请求是可区分的,例如所有“正常页面”请求都以 结尾.html
,因此它们的错误响应负载也应该是 HTML 页面,而例如所有其他请求将发送带有错误响应的 JSON 负载。
当然,更 RESTful 的方式是内容协商,即使对于错误响应,如果无法协商通用格式,也可能使用纯文本默认值。
添加回答
举报