PangLog
PangLog_k.k
PangLog
전체 방문자
오늘
어제
  • Category (77)
    • 💾기록 (2)
      • 📔기록 (2)
    • 🔧알고리즘 (10)
    • ⚡AI (17)
      • ∃Mathematics (11)
      • AI (5)
      • 논문 (1)
    • 👨‍💻Data Science (2)
    • 📚CS (4)
      • 📡컴퓨터 네트워크 (3)
      • 💾DB (0)
      • ⚙OS (1)
    • ⌨Programming (15)
      • Python (6)
      • Pytorch (3)
      • FastAPI (0)
      • Java (1)
      • Spring (3)
      • Elastic Search (2)
    • 💻 (23)
      • Git (9)
      • Issue sol (2)
      • Linux (2)
      • etc (7)
      • Web (2)
      • Docker (1)
    • 📰칼럼 (4)
      • IT (4)
      • 그 외 (0)
    • Review (0)

블로그 메뉴

  • 홈
  • Github

인기 글

최근 글

태그

  • 자바
  • BOJ
  • 프로그래머스
  • 11660
  • SWEA
  • 외부단편화
  • 내부단편화
  • Jupyter Lab
  • 옹알이(1)
  • K-디지털트레이닝 해커톤
  • cv2
  • cors
  • 쥬피터랩
  • Python
  • pycham
  • 알고리즘
  • inference
  • 백준허브
  • 파이참
  • Java
  • 깃허브
  • 백준허브 에러
  • 프로그래머스 체육복
  • 탐색적 데이터 분석
  • 인퍼런스
  • 백준허브 이슈
  • 5215
  • 파이썬
  • URL URI 차이
  • 백준
hELLO · Designed By 정상우.
PangLog

PangLog_k.k

💻/Web

CORS(x-csrf-token 헤더 허용)

2023. 5. 10. 10:30

프론트단에서 API 호출을 하는데 GET요청은 아무런 문제가 없으나 POST에서만 CORS에러가 발생하였다.

 

발생한 에러는 아래와 같다.

 

cess to XMLHttpRequest at 'http://localhost:8080/api/v1/board' from origin 'http://localhost:3000' has been blocked by CORS policy: Request header field x-csrf-token is not allowed by Access-Control-Allow-Headers in preflight response.

 

 

글자그대로 x-csrf token 헤더를 허용하지 않아서 발생한 에러였다.

 

 

 

사용하는 서버에서 x-csrf를 허용해주면 해결된다.

난 스프링에서 Filter를 통해 cors를 관리하고 있었고 아래와 같이 x-csrf-token을 추가해 해결하였다.

 

 

@Override
protected void doFilterInternal(
    HttpServletRequest request,
    HttpServletResponse response,
    FilterChain filterChain
) throws ServletException, IOException {
    try{
        response.addHeader("Access-Control-Allow-Origin", ALLOWED_ORIGIN);
        response.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT, OPTIONS");
        // x-csrf-token 헤더 추가
        response.addHeader("Access-Control-Allow-Headers", "authorization, content-type, x-csrf-token");
        response.setIntHeader("Access-Control-Max-Age", 3600);
    }catch(Exception e){
        log.info("Cors Error : {}",e.getMessage());
    }
    filterChain.doFilter(request, response);

}
반응형
저작자표시 비영리 변경금지 (새창열림)

'💻 > Web' 카테고리의 다른 글

URI와 URL의 차이  (0) 2023.01.24
    '💻/Web' 카테고리의 다른 글
    • URI와 URL의 차이
    PangLog
    PangLog

    티스토리툴바