반응형
위 방식만 적용했을 때, CORS policy를 해결하였지만, JWT 혹은 Security의 RememberMe를 사용할 경우 아래처럼 Cookies가 정상적으로 생성되지 않았다.
Cookie를 사용하기 위해서는 추가적인 설정이 필요하다.
먼저 화면단에서 API 요청시 withCredentials를 true 설정한다.
axios.post(ip, data, { withCredentials: true });
그리고 실행해보면 아래와 같은 에러가 난다.
Access to XMLHttpRequest at 'http://localhost:3000/hp?hi=hi' from origin 'http://localhost:5500' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
반응형
이는 서버에 preflight(사전 요청 : CORS 정책에 부합하는지 요청 확인) 요청을 하였을 때, 아무런 Access-Control-Allow헤더가 내려오지 않았기 때문
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://localhost:8080")
.allowedMethods("GET", "POST")
.maxAge(3600);
}
}
WebMvcConfigurer 에 위코드를 추가하면 사전 Access-Control-Allow값을 받을 수 있다.
반응형
'Spring > error' 카테고리의 다른 글
[Spring Error] IncorrectResultSetColumnCountException: Incorrect column count: expected 1, actual 8 (0) | 2020.12.15 |
---|---|
[Spring Error] log4jdbc 에러 (0) | 2020.12.13 |
[Spring-Boot] 실행 시 Path with "WEB-INF" or "META-INF" 경고 (0) | 2020.12.08 |
[Spring Error 기록] 406에러 발생시 해결 방법 (0) | 2020.12.05 |
[Spring Error 기록] CORS policy 해결방법, 모든 Origin 허용방법 (0) | 2020.12.05 |