Spring CORS 처리
Cross Origin Resource Sharing
Issue
- 서로 다른 도메인에 대해서 Http요청을 할 때, CORS 정책 발생
- preflight 요청에선 cookies, credentials를 포함하지 않는다.
- ajax요청 후, cookie가 셋팅되지 않는 이슈 발생
Solution
Back-end
- @CrossOrigin Annotation 사용
- Spring security 사용 중이면 각각의 Url Path에 대한 Role(권한) 확인 필요.
- CrossOrigin 셋팅해도 preflight request가 안된다면 security에서 접근을 막은 것일 수 있다.
Front-end
- credentials 셋팅
- ajax요청 시,
xhr.withCredentials = true;
셋팅 - API서버에서도
Access-Control-Allow-Crendentials = true
셋팅되어야 함
- ajax요청 시,
참고
- custom header를 사용하여 http요청 시, preflight request 방식으로 요청한다.
- CORS request는 기본적으로 Non-Credential이다.
Leave a comment