프로그래밍/Back end
[Back end] Interceptor API 여부 검증
Reference M1
2020. 2. 12. 22:10
Interceptor에서 API 요청인지 페이지 이동인지 구분해야 할 때가 있다. 간단하게 API 요청 여부에 대해 확인하는 방법을 알아보자.
Http 요청을 하게 되면 요청 헤더에 "X-Request-With" 필드에 "XMLHttpRequest" 값이 포함된 것을 확인할 수 있다.
X-Request-With의 접두사 X는 비표준을 의미한다. 하지만 jQuery와 같은 대중적인 라이브러리들이 Ajax 요청 시 헤더에 정보를 담아 전송을 요청한다. 이것을 활용하면 API 호출 여부를 판별하기 쉽다.
private boolean isAjaxRequest(HttpServletRequest request) {
String header = request.getHeader("X-Requested-With");
if ("XMLHttpRequest".equals(header) {
return true;
} else {
return false;
}
}
"X-Requested-With", "XMLHttpRequest"는 상수로 정의해서 사용하시길 바란다.