문제발생
야심차게 백엔드 서버에서 크롤링 기능을 만들고 화면에 렌더링하려고 fetch 함수를 써서 데이터를 받아오려 했다.
그래서 백엔드 서버를 띄우고 localhost:8080 에 fetch 함수로 요청을 보냈다.
하지만 요청을 보내면 200으로 응답은 받는데 자꾸 응답 body가 빈값으로 오는 현상이 발생했다.
문제해결
원인은 CORS 때문이었다. CORS의 개념은 이 글을 참고하자.
해결 방법은 아래의 두가지가 생각이 났다.
- 백엔드 서버에서 origin 관련 설정을 설정해준다.
- 백엔드 서버 자체에서 HTML 을 렌더링해서 origin 이 애초에 같도록 한다.
스프링으로 HTML, JS 을 사용해본적이 없어서 경험해보고 싶었기 때문에 이 중 두번째 방법을 선택했다.
예상대로 origin이 같으니 응답 body에 데이터가 제대로 넘어왔다.
프론트를 만져보니 팀 프로젝트때는 대충 설정하고 넘겼던 CORS 라는 개념을 직접 사용해야해서
설정에 대해 더 공부하고, 이해하고 알아보는 좋은 기회가 됐다.
하지만 웹서버와 WAS 를 분리하는 시점이 오면 첫 번째도 해봐야 할 시점이 오겠지.
그땐 조금 더 많은 경험을 할 수 있을것 같다.
'픽시브 크롤링 해보기 > 트러블 슈팅' 카테고리의 다른 글
[BE] 빌드 이후 이미지를 저장한 이미지를 렌더링하려 하면 엑박 (0) | 2023.12.13 |
---|---|
[BE] required a bean of type 'java.lang.String' that could not be found. (0) | 2023.12.10 |
[BE] 윈도우와 맥의 셀레니움 크롬드라이버 설정 차이로 인한 깃허브 관리 문제 해결(JAVA) (0) | 2023.11.20 |
[BE] Mac 에서 셀레니움 사용 시 크롬 드라이버 실행 문제 (0) | 2023.11.15 |
[BE] 셀레니움 사용 시 no such element 라면서 일부만 크롤링해오는 문제 (0) | 2023.11.07 |