티스토리 뷰

thinkoutbox.tistory.com/55

 

Leaflet - GeoServer - WMS, popup 레이어로 데이터 가져오기

QGIS - postGIS- GeoServer - Leaflet을 이용하여 웹에 gis의 데이터를 뿌려주는 페이지를 만들고 있다. 지난번에는 리플렛을 이용해 QGIS의 데이터를 퍼블리싱하는 것까지 성공했다. thinkoutbox.ti..

thinkoutbox.tistory.com

 

지난 포스팅에서 지도를 클릭하면 그 위치에 있는 레이어가 가지고 있는 정보를 보여주는 것까지 완성했다.

 

하지만 사실, 완성하기 전에는 오류가 생겨서 데이터가 제대로 나오지 않았었다.

 

오늘은 그 오류를 해결하는 방법에 대해 기록해두려고 한다.

 

---

 

결과적으로는 이렇게 데이터가 테이블로 딱! 하고 떴지만,

이 이전에는 테이블이 뜨지 않고 아이프레임안에 물음표가 있었다...

(회고하며 기록중이라 그 당시에는 스크린샷을 찍어두지 못했습니다)

 

콘솔을 확인해보니

 

어쩌고 저쩌고 ~~~~. No 'Access-Control-Allow-Origin' header is present on the requested resource. 어쩌고저쩌고~~~

 

뭐 이런 오류가 떴다.

 

---

 

내가 개발을 하고 있는 환경은

 

geoserver는 이미 웹서버에 올라가 있는 상태고

지금 leaflet을 만지고 있는건 로컬에서 html 하나 열어놓고 작업중이었는데.

 

이 오류는 어느 한 도메인에서 다른 도메인으로 요청을 보낼 경우 생기는 CORS 오류라고 한다.

 

지도를 클릭하면 그 위치의 데이터를 지오서버에 요청해서 데이터를 ajax로 가져오는데

이때 요청을 보낸 곳은 내 컴퓨터(local)이고 요청을 받은 곳은 웹 서버였기 때문에 생긴 크로스 도메인 오류였다.

 

geoserver가 설치된 서버에서 CORS에 모든 도메인을 허용하도록 설정을 바꿔주면서 해결했다.

 

 

출처: www.gisdeveloper.co.kr/?p=6162

 

GeoServer의 Cross Domain 허용 (CORS) – GIS Developer

GeoServer에서 Cross Domain을 허용하기 위한 설정 방법을 기록해 둡니다. 먼저 아래처럼 GeoServer의 환경설정 파일을 편집하기 위해 vi를 실행합니다. 환경 설정 파일은 설치되는 GeoServer의 디렉토리에

www.gisdeveloper.co.kr

 

지오서버가 설치된 서버의 지오서버 폴더내의 web.xml을 수정해주면 된다.

 

/지오서버가 설치된 폴더/webapps/geoserver/WEB-INF/web.xml

 

이미지 출처 : GIS DEVELOPER 블로그 http://www.gisdeveloper.co.kr/?p=6162

 

위의 노란 박스에 있는 내용들을 주석해제하고 저장한다음

지오서버를 재시작하면 된다.

 

--

 

이 과정에서 수정 권한이 없을경우 관리자 권한이 필요하다.

댓글
최근에 올라온 글
Total
Today
Yesterday