Angular + Spring POST ContentType error 'text/plain;charset=UTF-8 해결

Angular + Spring POST ContentType error 'text/plain;charset=UTF-8 해결

반응형

Spring boot로 RestAPI를 만들어서 Angular에서 전달한 데이터를 저장하는 과정에서 아래와 같은 에러가 발생하였다.

Angular의 경우

Spring-boot의 경우

에러가 발생하였지만 어떤 부분이 잘못되었는지를 모르니 하나하나 해석 하며 Access-Control-Allow-Origin이 헤더에 없다고 뜨는 것을 해결하기위해

해당 코드를 넣어서 해결해보려고 하였다. 하지만 Header를 추가하니 Spring 까지 요청을 보내주지도 않았고 차단당하였다.

이유를 생각해보니 다른 도메인에서 Spring 서버 URL을 통해 접근하려 하니 Springframework에서 차단 한다는 사실을 알게되었고 해당 부분을 해결하기위해

@CrossOrigin(origins = "*") @RestController public class InfoController { .... }

Controller Class에 Springframework에서 제공하는 @CrossOrigin 어노테이션을 붙이니

Spring 에서 외부의 접근을 허용하게되었다.

하지만 여기서 끝낸다면 어느 누구라도 내가 만든 서버를 접근하여 데이터를 강제로 가져갈지 모르니 내가 필요한 도메인만을 허용하도록

@CrossOrigin(origins = "http://localhost:4200") @RestController public class InfoController { ... }

지정해주었더니 데이터를 아주잘 받아오는 모습을 볼 수 있었다.

반응형

from http://sac4686.tistory.com/71 by ccl(A) rewrite - 2021-10-08 17:01:14