💡 CORS Preflight(OPTIONS) 요청의 특성
브라우저가 DELETE 나 PUT 처럼 서버의 데이터를 변경할 수 있는 위험한 요청을 보낼 때 요청을 보내기 전에 내가 이 요청을 보내도 될까? 라고 물어봄(OPTIONS 메서드) → 이게 Preflight 요청
🚫 문제 발생
source.registerCorsConfiguration("/api/v1/**", config);경로 불일치 가능성
요청하는 URL 이 /api/v1/posts/1/like 인데 서버에서 이 경로를 해석하기 전 다른 루트 경로에서 먼저 OPTIONS 요청을 처리하려고 한다면 CORS 설정이 적용되지 않음
✅ 문제 해결
source.registerCorsConfiguration("/**", config);경로 불일치 가능성
CORS 루트 완화
🧠 배운점
Q. OPTIONS 요청도 /api/v1/.. 주소로 가는데 왜 / 설정이 필요한가?
- 보안 필터의 조기 차단 방지: Spring Security는 매우 엄격하여, 경로 매칭이 미세하게 어긋나면 OPTIONS 요청에 대해 응답을 주지 않습니다. 전역(/**) 설정은 모든 관문에서 CORS 응답을 보장
- 브라우저의 엄격함: DELETE 메서드는 브라우저에게 매우 민감한 작업입니다. OPTIONS 응답이 단 1%라도 설정과 맞지 않으면(예: 허용 메서드 누락, 경로 미매칭), 본 요청인 DELETE 자체를 전송하지 않아 서버 로그에는 토큰이 없는 상태(null)만 남게 됨
'Project > MetaSNS' 카테고리의 다른 글
| 이미지 업로드 시 500 에러 (로컬 로그 없음) (0) | 2026.03.03 |
|---|---|
| JWT Weak Key Exception 발생 (0) | 2026.03.03 |
| /login?error로 리다이렉트되는 현상 (0) | 2026.03.03 |
| Hibernate Dialect 오류 발생 (0) | 2026.03.03 |
| Dockerfile과 docker-compose.yml (0) | 2026.03.03 |
