티스토리 뷰
[Leaflet - GeoServer] cross domain 문제 해결하기 (CORS) - (No 'Access-Control-Allow-Origin' header is present on the requestedresource. 에러)
thou 2020. 10. 23. 00:26
지난 포스팅에서 지도를 클릭하면 그 위치에 있는 레이어가 가지고 있는 정보를 보여주는 것까지 완성했다.
하지만 사실, 완성하기 전에는 오류가 생겨서 데이터가 제대로 나오지 않았었다.
오늘은 그 오류를 해결하는 방법에 대해 기록해두려고 한다.
---
결과적으로는 이렇게 데이터가 테이블로 딱! 하고 떴지만,
이 이전에는 테이블이 뜨지 않고 아이프레임안에 물음표가 있었다...
(회고하며 기록중이라 그 당시에는 스크린샷을 찍어두지 못했습니다)
콘솔을 확인해보니
어쩌고 저쩌고 ~~~~. 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
지오서버가 설치된 서버의 지오서버 폴더내의 web.xml을 수정해주면 된다.
/지오서버가 설치된 폴더/webapps/geoserver/WEB-INF/web.xml
위의 노란 박스에 있는 내용들을 주석해제하고 저장한다음
지오서버를 재시작하면 된다.
--
이 과정에서 수정 권한이 없을경우 관리자 권한이 필요하다.
'개발' 카테고리의 다른 글
[Leaflet - GeoServer - WMS] 멀티레이어의 GetFeatureInfo가 작동하지 않는 오류 (0) | 2020.11.16 |
---|---|
[Leaflet - GeoServer - WMS] GetFeatureInfo 이용한 customizing popup(팝업 커스텀) (0) | 2020.10.23 |
[Leaflet - GeoServer - WMS] popup 레이어로 데이터 가져오기 (GetFeatureInfo) (2) | 2020.10.23 |
[Leaflet - GeoServer] WMS layer 로 GIS 지도 퍼블리싱하기 (0) | 2020.10.22 |
디지털오션 워드프레스에 HTTPS를 위한 SSL 인증서 설치하고 자동갱신 (auto renew)하기 (0) | 2020.08.25 |