2 回答

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊
我嘗試過以下方法,并且有效
@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貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超11個(gè)贊
一種方法是確保請(qǐng)求是可區(qū)分的,例如所有“正常頁面”請(qǐng)求都以 結(jié)尾.html
,因此它們的錯(cuò)誤響應(yīng)負(fù)載也應(yīng)該是 HTML 頁面,而例如所有其他請(qǐng)求將發(fā)送帶有錯(cuò)誤響應(yīng)的 JSON 負(fù)載。
當(dāng)然,更 RESTful 的方式是內(nèi)容協(xié)商,即使對(duì)于錯(cuò)誤響應(yīng),如果無法協(xié)商通用格式,也可能使用純文本默認(rèn)值。
添加回答
舉報(bào)