로컬로 테스트하던 잘 사용하던 중에 난 에러

 

 

 

Access to XMLHttpRequest at 'http://localhost:8080/SFSJ_API/api/001001000/getJsonFromIOExcel.do' from origin 'http://localhost:7080' has been blocked by CORS policy: The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.

 

라는 문제로 에러가 나는 이유는

 

웹 서버 개발시 자바스크립트로 외부서버의 경로로 ajax요청을 날리면서 실패할 때,

즉 서로 다른 도메인에서 자료를 가져 오면서 CORS(Cross Origin Resource Sharing) 라는 에러가 발생하였다.

 

해결방안은 여러가지가 있는데

 1.서버에서 설정하는 방법

 (이 방법에 대해서는 정확한 방법을 모르겠다..)

 

 2. 크롬에서 웹 시큐리티 막기

   - 크롬의 바로가기의 '속성 > 바로가기 > 대상' 에 "--disable-web-security --user-data-dir='폴더위치'" 삽입

 

 

   * --user-data-dir의 위치는 해당크롬에서 오류가 났을때, 백업내용? 오류내용?이 들어가는 위치라고 한다. 

   * 기존의 크롬도 사용하겠다하면 바로가기를 하나 더 만든 후 이름과 속성을 수정 하면 댐.       

 

--disable-web-security 적용 된 크롬 상단에 표시 됨.

 

 

 3. 크롬 웹 스토어에서 CORS 프로그램 깔기.

  - 크롬 웹스토어에 들어갑니다.

   (https://chrome.google.com/webstore/search/CORS?hl=ko)

  - 검색창에 CORS를 친 후 프로그램 추가

 

저는 'Allow CORS: Access-Control-Allow-Origin' 이라는 프로그램을 설치하고 적용했습니다.

이 프로그램 기준으로 사용법은

  - 크롬의 좌측 상간의 C:라는 것을 눌러줍니다.

 - C: 를 누르면 사진과 같이 뜨는데, 흑색 커다란 C:를 누르면 활성화가 됩니다.

 - 사용을 안하실때는 색상 C:를 다시 누르면 비활성화가 됩니다.

+ Recent posts