spring boot跨域問題--待解決
阿新 • • 發佈:2019-02-11
前後端分離的系統通常會出現跨域問題,最簡單的辦法是在每個controller上面添加註解:
@CrossOrigin(origins = "*")
但是,如果要對exception統一進行處理,使用@ControllerAdvice註解一個全域性攔截器後,無法像controller一樣添加註解就可以解決跨域問題,暫時還沒有搜尋到解決辦法,期待哪位大神能給個提示。
package test.common.aop; import test.tips.ErrorTip; import test.common.exception.BizExceptionEnum; import io.jsonwebtoken.JwtException; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MaxUploadSizeExceededException; /** * 全域性的的異常攔截器 * */ @ControllerAdvice @Slf4j public class GlobalExceptionHandler { /** * 攔截jwt相關異常 */ @ExceptionHandler(JwtException.class) @ResponseStatus(HttpStatus.BAD_REQUEST) @ResponseBody public ErrorTip jwtException(JwtException e) { log.error("jwt exception: ", e); return new ErrorTip(BizExceptionEnum.TOKEN_ERROR.getCode(), BizExceptionEnum.TOKEN_ERROR.getMessage(), null); } /** * 攔截檔案上傳異常 */ @ExceptionHandler(MaxUploadSizeExceededException.class) @ResponseStatus(HttpStatus.BAD_REQUEST) @ResponseBody public ErrorTip uploadException(MaxUploadSizeExceededException e) { log.error("file upload exception: ", e); return new ErrorTip(BizExceptionEnum.FILE_SIZE_ERROR.getCode(), BizExceptionEnum.FILE_SIZE_ERROR.getMessage(), null); } }