현상

웹 개발을 하면서 CORS (Cross-Origin Resource Sharing) 정책 오류는 매우 자주 마주치는데 이번에 발생한 문제는 서버로부터 응답이 차단되었다는 것을 의미한다. 전체 오류 메시지는 아래와 같다.

Access to fetch at 'http://127.0.0.1:3000/api/admin/custom/gen-script?type=1' 
from origin 'http://localhost:3000' has been blocked by CORS policy: 
No 'Access-Control-Allow-Origin' header is present on the requested resource. 
If an opaque response serves your needs, set the request's mode to 'no-cors' 
to fetch the resource with CORS disabled.

 

원인

http://localhost:3000 으로 부터 요청이 Block되었다는 오류메시지이다.

fetch를 수행한 주소는 http://127.0.0.1:3000/api/~ 로 되어있지만 응답을 받은 주소는 http://localhost:3000/~로 두 주소가 상이하기에 Block이 된 것으로 보인다.

웹 프론트에서 현재 fetch의 주소는 환경변수에서 읽어오는 것이며, <.env.development>파일의 변수값을 보면 아래와 같이 되어있었다.

REACT_APP_WEB_BASE_URL=http://127.0.0.1:3000
REACT_APP_WEB_BASE_PROXY_URL=http://127.0.0.1:80

 

해결방법

변수에 설정된 주소를 아래와 같이 변경했다.

REACT_APP_WEB_BASE_URL=http://localhost:3000
REACT_APP_WEB_BASE_PROXY_URL=http://localhost:80

 

'좌뇌 > Web' 카테고리의 다른 글

(Reflex) AWS-EC2 certbot 사용하여 무료로 'https' 적용하기  (0) 2024.09.09

+ Recent posts