http method options과 preflight 오류

개발새발·2023년 1월 1일
0

etc

목록 보기
18/22

으에ㅔㅇ… 계속해서 spring와 react 를 사용하여 jwt인증을 하는데 자꾸 preflight 오류가 떴다… ㅠㅠ

🏊 원인

Spring Security를 사용하고 있었는데, Spring에서 Access-Control-Allow-Origin 을 보내서 해결할 수 있는 경우가 제한이 있었다.

  1. 요청 메소드는 GET, HEAD, POST 중 하나여야한다.
  2. Accept, Accept-Language, Content-Type, DPR, Downlink, Save-Data, Viewport-Width, Width 를 제외한 헤더를 사용하면 안된다.
  3. Content-Type헤더는 application/x-www-form-urlencoded, multiplart/fom-data, text/plain 중 하나를 사용해야만한다.

그런데, 이 중에 나는 2번에서 Authorization이라는 헤더를 사용하고 있었고, 3번에서는 Content-Type이 application/json 이였다.

🏄‍♀️ 해결

때문에, 위에서 말한 3가지 조건을 요청못하면, 예비요청이라 불리는 HTTP-Options를 보내서 안전한지 확인 후에 요청을 보내는 preflight 라는 요청을 보내야한다고 한다. 때문에 Spring Security에서 HttpMethod.Options 를 추가해주면 끝!

profile
발새발개

0개의 댓글