개발자

안녕하세요 cors로 고통받고 있는 주니어 개발자입니다ㅜㅜ

2023년 05월 11일조회 531

현재 안드로이드 + 리액트로 하이브리드 앱을 개발하고 있습니다. 웹뷰 UI작업 이후에 서버와 Rest API 통신을 하려 합니다. axios를 이용해서 서버와 통신하려고 하는데 SOP로 인한 CORS 에러로 통신을 못하고 있습니다.. 현재 안드로이드에서 사용하고 있는 웹뷰 주소가 192.100.200.300:3000 이라고 가정하고 서버의 주소가 106.100.200.300:4000이라고 가정한다면 어떤 방법으로 통신할 수 있을까요..? 여기저기 알아보니까 서버에서 Access-Control-Allow-Origin을 ‘*’ 등으로 설정하고 웹뷰에서 axios를 실행할 때 header에 Access-Control-Allow-Origin을 추가하면 되는 것 같는데 맞나요?? 현재 서버는 수정할 수가 없어서 웹뷰에서만 수정이 가능한데 방법은 없는건가요ㅠㅜ

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 3

최경훈님의 프로필 사진

서버 개발자에게 열어달라고 하는게 젤 좋은것 같구요. 그게 어렵다면 수정이 어렵다면 프록시로 꼼수해보세요 https://velog.io/@tw4204/React-%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C%EC%9D%98-CORS%EB%A5%BC-%EC%9C%84%ED%95%9C-proxy-%EC%84%A4%EC%A0%95 이런거 보시고 해보시면 될지도!

kevin님의 프로필 사진

안녕하세요 얼마전까지 저도 cors로 고통받고잇던 시니어 개발자입니다 질문내용을 보니 좀더 고통을 받아보시면 좋을거같아서 리버스 프록시에대해서 한번 검색해보시는거 추천드립미다 😂

커리어리 AI 봇님의 프로필 사진

안녕하세요! CORS(Cross-Origin Resource Sharing)로 인한 문제로 고통받고 계신다니 아쉽습니다. CORS는 보안 상의 이유로 브라우저에서 발생하는 정책이기 때문에, 서버 측에서 설정을 변경하는 것이 가장 좋은 방법입니다. 하지만 서버를 수정할 수 없는 상황이라면, 몇 가지 대안적인 방법을 고려해볼 수 있습니다. 1. Proxy 서버 사용: 서버와의 통신을 중계해주는 프록시 서버를 사용하여 CORS 정책을 우회할 수 있습니다. 프록시 서버를 구성하여 클라이언트의 요청을 해당 프록시 서버로 전달하고, 프록시 서버가 서버로부터의 응답을 클라이언트에게 전달하는 방식입니다. 이를 통해 클라이언트의 요청은 동일한 도메인으로 전달되므로 CORS 문제를 우회할 수 있습니다. 2. JSONP 사용: JSONP(JSON with Padding)는 웹 브라우저에서 동일 출처 정책을 우회하는 방법 중 하나입니다. JSONP를 사용하면 서버에서 응답을 JSONP 형식으로 감싸 클라이언트에게 전달하고, 클라이언트는 스크립트 태그를 이용하여 해당 응답을 처리합니다. JSONP는 서버 측에서 지원해야 하므로, 서버가 JSONP 형식의 응답을 지원하는지 확인해야 합니다. 3. 프론트엔드 라이브러리 사용: 서버 측에서 CORS 정책을 처리하기 위한 라이브러리를 사용할 수도 있습니다. 예를 들어, express.js에서는 cors라는 미들웨어를 제공하며, Django에서는 django-cors-headers 패키지를 사용할 수 있습니다. 이러한 라이브러리를 사용하면 서버 측에서 CORS 관련 설정을 쉽게 추가할 수 있습니다. 하지만 위의 방법들은 서버 측에서 처리가 필요한 상황에서 사용할 수 있는 방법이며, 웹뷰 자체에서 CORS 정책을 우회하는 방법은 제한적입니다. 가능하다면 서버 측에서 CORS 정책을 수정하거나 대체 방법을 사용하는 것이 가장 좋은 해결책입니다.

커리어리 AI 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!