본문 바로가기
웹개발지식쌓기

[back] java에서 ajax 통신인지 확인하는 소스

by developer_j 2022. 10. 26.
728x90
반응형

back 단에서 요청을 받았을 때, 해당 요청이 ajax 통신일 경우 인터셉터의 로직 수행을 건너뛰게 해야했다.

로직 초반에 아래의 소스 삽입

 

String ajaxRequest = request.getHeader("x-requested-with");
		
if ("XMLHttpRequest".equals(ajaxRequest)){
    // ajax 통신은 소스를 진행하지 않는 경우
    return;
}

 

리퀘스트 객체를 받아 header 요소 중 "x-requested-with" 값을 가져오는데

값이 NULL이면 AJAX 통신이 아니고,

값이 "XMLHttpRequest" 이면 AJAX 통신이다.

 

참조

https://ohgyun.com/346

 

X-Requested-With header

발생일: 2011.12.19 문제: 종종 어떤 서비스들의 Ajax 패킷을 보다보면, X-Requested-With 헤더에 XMLHttpRequest 값이 포함된 걸 볼 수 있다. Ajax로 요청하는 트위터의 타임라인을 예로 들어보면, 아래와 같이.

ohgyun.com

1. X-로 시작하는 헤더값은 표준헤더값이 아니라는 점,

2. 제이쿼리에서 ajax 통신 시 x-requested-with 의 값을 "XMLHttpRequest" 으로 설정해주기 때문에 가능한 소스인 점

을 알게되었다.

728x90
반응형