为使用Spring Boot的Web应用更改CORS规则
写接口的时候一直要配置HTTP header中的CORS规则来控制跨域调用,之前在直接使用Servlet的时候都是直接修改,现在改用Spring Boot,就找了一下使用Bean来设置内置的Spring MVC的CORS规则的方法。
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
public class CorsConfiguration {
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("*");
}
};
}
}
/** 是Spring的拦截器的写法,两个*代表可以匹配多个层级
这里配置了允许一切域名使用这个数据。
注:CORS规则只对浏览器生效,后台接口访问则不受此限,可以说是防君子不妨小人,一众使用github issue的评论系统都需要一个github oauth接口的代理,就是为了给它的包加上CORS头,让页面可以访问这个数据。