Cross-Origin Resource Sharing의 줄임 표현이다.
교차 출처 리소스 공유 정책이라고 해석된다.
출처(Origin)가 다른것을 말한다
- 출처(Origin)란?
- 우리가 흔히 쓰는 url은 여러 구성 요소로 이루어져 있다,

- Protocol(Scheme) : http, https
- Host : 사이트 도메인
- Port : 포트 번호
- Path : 사이트 내부 경로
- Query String : 요청의 key와 value 값
- Fragment : 해시태크
* Origin : Protocol + Host + Port
기본적인 요청 정책
동일 출처 정책이 필요한 이유는
출처(Origin) 비교는 서버쪽에서 하는게 아니라 브라우저 구현 스펙이다
공통으로 SpringBootApplication에 @EnableWebMvc를 추가해주고
Spring boot에서는
@Configuration
public class WebConfiguration implements WebMvcConfigurer {
@Value("${bncp.allow.origins}")
String[] allowedOrigins;
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOriginPatterns(allowedOrigins);
}
}
이런식으로 allowedOrigins를 해당 어플리케이션의 origin을 설정해주면 된다.
@Configuration
public class WebConfiguration implements WebMvcConfigurer {
@Value("${bncp.allow.origins}")
String[] allowedOrigins;
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins(allowedOrigins);
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}
}