728x90

JavaScript 코드를 따로 정리하려고 js 파일을 만들었는데 

<%= request.getContextPath %>가 사용이 안 될지는 몰랐습니다.

그래서 다른 방법을 알아보는 데 사용하고 싶을 만큼 한눈에 와닿는 건 찾지 못했습니다.

결국 직접 만들었는데 이것도 지저분하긴 합니다. 그래도 저 같은 사람이 있을까 봐 공유합니다.

 

아래 MDN 사이트의 Location 자료를 보고 origin과 pathname 속성을 사용했습니다.

https://developer.mozilla.org/ko/docs/Web/API/Location

 

Location - Web API | MDN

Location 인터페이스는 객체가 연결된 장소(URL)를 표현합니다.

developer.mozilla.org

 

http/https에서 origin 속성을 사용하는 경우에는 도메인을 포함해 포트번호까지 문자열로 반환합니다.

pathname의 경우 도메인 이후 URL주소를 문자열로 반환합니다.

 

http://localhost:8080/controller/developer/userList.do

전체 URL 경로가 위와 같다면 origin과 pathname의 반환 값은 아래와 같습니다.

var pathname = window.location.pathname;
/controller/developer/userList.do


var origin = window.location.origin;
http://localhost:8080

 

이와 같은 결과 값을 가지고 저는 <%= request.getContextPath %>와 같은 값을 적용하기 위해

js파일 상단에 아래와 같은 변수를 설정해줬습니다.

스플릿 했기 때문에 양쪽에 "/"를 붙여주고 인덱스 1번에 있는 값을 가운데 넣습니다.

const pathname = "/" + window.location.pathname.split("/")[1] + "/";
const origin = window.location.origin;

const contextPath = origin + pathname;

그 값은 아래와 같습니다.

http://localhost:8080/controller/

 

 

728x90

'JavaScript' 카테고리의 다른 글

jQuery ajax의 processData, contentType, cache 속성  (0) 2022.08.06

+ Recent posts