웹개발지식쌓기
[back] java에서 ajax 통신인지 확인하는 소스
developer_j
2022. 10. 26. 12:10
728x90
반응형
back 단에서 요청을 받았을 때, 해당 요청이 ajax 통신일 경우 인터셉터의 로직 수행을 건너뛰게 해야했다.
로직 초반에 아래의 소스 삽입
String ajaxRequest = request.getHeader("x-requested-with");
if ("XMLHttpRequest".equals(ajaxRequest)){
// ajax 통신은 소스를 진행하지 않는 경우
return;
}
리퀘스트 객체를 받아 header 요소 중 "x-requested-with" 값을 가져오는데
값이 NULL이면 AJAX 통신이 아니고,
값이 "XMLHttpRequest" 이면 AJAX 통신이다.
참조
X-Requested-With header
발생일: 2011.12.19 문제: 종종 어떤 서비스들의 Ajax 패킷을 보다보면, X-Requested-With 헤더에 XMLHttpRequest 값이 포함된 걸 볼 수 있다. Ajax로 요청하는 트위터의 타임라인을 예로 들어보면, 아래와 같이.
ohgyun.com
1. X-로 시작하는 헤더값은 표준헤더값이 아니라는 점,
2. 제이쿼리에서 ajax 통신 시 x-requested-with 의 값을 "XMLHttpRequest" 으로 설정해주기 때문에 가능한 소스인 점
을 알게되었다.
728x90
반응형