Spring Boot 설정 CORS 해결 요청 크로스 도 메 인 문제

1917 단어 springboot
1. 사용 @CrossOrigin 주해 실현# 특정한 인터페이스 에 설정 하려 면  CORS, 방법 에 추가 가능  @CrossOrigin  주석:
@CrossOrigin(origins = {"http://localhost:9000", "null"})
@RequestMapping(value = "/test", method = RequestMethod.GET)
public String greetings() {
    return "{\"project\":\"just a test\"}";
}
# 일련의 인터페이스 에 CORS 설정 을 추가 하려 면 클래스 에 주 해 를 추가 할 수 있 고 모든 인터페이스 에 유효 합 니 다.
@CrossOrigin(origins = {"http://localhost:9000", "null"})
@RestController
@SpringBootApplication
public class SpringBootCorsTestApplication {
    
}
# 전역 설정 을 추가 하려 면 설정 클래스 를 추가 해 야 합 니 다.
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("*")
                .allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE")
                .maxAge(3600)
                .allowCredentials(true);
    }
}

또한 Filter 를 추가 하 는 방식 으로 CORS 규칙 을 설정 하고 어떤 인터페이스 에 효과 가 있 는 지 수 동 으로 지정 할 수 있다.
@Bean
public FilterRegistrationBean corsFilter() {
    UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
    CorsConfiguration config = new CorsConfiguration();
    config.setAllowCredentials(true);   config.addAllowedOrigin("http://localhost:9000");
    config.addAllowedOrigin("null");
    config.addAllowedHeader("*");
    config.addAllowedMethod("*");
    source.registerCorsConfiguration("/**", config); // CORS           
    FilterRegistrationBean bean = newFilterRegistrationBean(new CorsFilter(source));
    bean.setOrder(0);
    return bean;
}

좋은 웹페이지 즐겨찾기