2018년 4월 25일 수요일

[Cesium] 동작 환경 설치

1. 아래 URL에서 CesiumJS 다운로드
   - https://cesiumjs.org/downloads

2. 다운로드 받은 압축 파일을 지정한 폴더에 해제
   ex) C://Cesium

3. 압축 해제한 폴더를 열어보면 다음과 같이 구성되어 있음(1.44버전 기준)
   - Apps
   - Build
   - node_modules
   - Source
   - Specs
   - ThirdParty
    ....

4. 모듈 설치를 위해 node.js 설치
   - https://nodejs.org/ko/

5. cmd창을 열고 Cesium 압축 해제한 폴더에 cd로 접근
   > cd c:\Cesium

6. 명령어를 입력해 cesium 모듈 설치 (10분정도 소요)
   > npm install

7. 설치 완료 후 cesium 웹 서버 실행
   > node server.js

8. localhost:8080/Apps/(어플리케이션폴더) 로 개발 중인 어플리케이션 실행 가능
  (기본으로 설치된 데모버전은 http://localhost:8080/Apps/HelloWorld.html 로 접근)

2017년 2월 7일 화요일

[오류일지] 엣지, HTTP403: FORBIDDEN - 서버에서 요청을 이해했지만 수행을 거부하고 있습니다.

[일시]
2017.02.02 톰캣 서버로 프로젝트 데이터 전송 중 발생





[원인 탐색]

MSDN 에서 HTTP 오류 코드를 조회해보니 다음과 같은 정보가 나옴     
HTTP403
FORBIDDEN
서버에서 요청을 이해했지만 수행을 거부하고 있습니다.
서버 권한 관련된 문제라 판단됨. ------> java 서블릿 프로젝트의 web.xml 에 필터 내용 추가함 ------> 여전히 동작 안함 (실패)

xhr 통신을 위해 만들어준 함수가 예전 버전인 것을 확인  ----> 최신 버전으로 업데이트 ----> 동작함



[현상]
엣지 환경에서 Ajax 통신 시 아래 오류 메세지가 출력되면서 데이터 전송이 안됨.
데스크탑 엣지에서만 안됨, 크롬/IE/파이어폭스는 정상동작함.
       
 HTTP403: FORBIDDEN - 서버에서 요청을 이해했지만 수행을 거부하고 있습니다.
 (XHR)POST - http://(요청URL)

(영문버전) 
HTTP403: FORBIDDEN - The server understood the request, but is refusing to fulfill it.





[해결]
ajax 통신 시 XMLHttpRequest 객체의 헤더에 Content-type 을 설정하지 않으면 위와 같은 현상이 발견되는 것을 확인.
Content-type 헤더를 붙여서 전송한 후 정상적으로 동작함.

if (type){
        xhr.setRequestHeader("Content-type", type);
}