2
我正在使用下面提到的Spring代碼來處理異常並將響應返回給客戶端。由於我在這裏使用了ResponseBody註解,所以我期待Spring會在出現錯誤時返回JSON響應,但我會在下面看到客戶端收到的響應(JSON響應位於responseText中,而不是直接返回給客戶端)。請指點我怎麼能返回JSON響應呼叫者在客戶端收到從Spring異常處理程序返回JSON響應
響應: -
Object {readyState: 4, responseText: "{"status":false,"msg":"User Data not available","r…"MARSAPI003","noOfRecords":0,"responseList":null}", responseJSON: Object, status: 403, statusText: "Forbidden"}
Spring代碼: -
@ExceptionHandler(MarsUnAuthorizedOperation.class)
@ResponseBody
@ResponseStatus(value=HttpStatus.FORBIDDEN)
public MarsResponse unAuthorizedOperationExceptionHandler(final Exception ex){
final MarsResponse response = new MarsResponse();
response.setNoOfRecords(0);
response.setMsg(ex.getMessage());
response.setResponseCode(marsMessageProperties.getUnauthorizedOperationErrorCd());
response.setResponseMessage(marsMessageProperties.getUnauthorizedOperationErrorMsg());
response.setStatus(false);
return response;
}
我認爲它可能會干擾@ResponseStatus(value = HttpStatus.FORBIDDEN)註釋(這會導致一些其他處理程序進一步處理它)。嘗試刪除它,並確保該類本身用@ControllerAdvice註釋。我猜你在一年多的時間內不需要這個建議,但是我也把它留在了這裏,也是爲了那些在這裏流浪的人。 – Arsen