티스토리 뷰

 

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"는 상수로 정의해서 사용하시길 바란다.

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함