方法一
@Configuration
public class InterceptorConfig implements WebMvcConfigurer {
/*跨域配置*/
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowCredentials(true)
.allowedOriginPatterns("*")
.allowedHeaders("*")
.exposedHeaders("")
.allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS")
.maxAge(3600);
}
}
方法二
@Configuration
public class CrosConfig{
@Bean
public FilterRegistrationBean corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", getCorsConfig());
FilterRegistrationBean cros = new FilterRegistrationBean(new CorsFilter(source));
//设置优先级最高
cros.setOrder(Ordered.HIGHEST_PRECEDENCE);
return cros;
}
private CorsConfiguration getCorsConfig(){
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.setAllowCredentials(true);
corsConfiguration.addAllowedHeader("*"); //允许所有域名访问
corsConfiguration.addAllowedMethod("*"); //允许所有请求头
corsConfiguration.addAllowedOriginPattern("*"); //允许所有的请求类型
corsConfiguration.setMaxAge(3600L);
return corsConfiguration;
}
}
方法三
@Configuration
public class CrosConfig{
@Bean
public CorsWebFilter corsFilter2() {
org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource source = new org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", getCorsConfig());
return new CorsWebFilter(source);
}
private CorsConfiguration getCorsConfig(){
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.setAllowCredentials(true);
corsConfiguration.addAllowedHeader("*"); //允许所有域名访问
corsConfiguration.addAllowedMethod("*"); //允许所有请求头
corsConfiguration.addAllowedOriginPattern("*"); //允许所有的请求类型
corsConfiguration.setMaxAge(3600L);
return corsConfiguration;
}
}
方法四
@Component
@Order(Ordered.HIGHEST_PRECEDENCE)
public class SimpleCORSFilter implements Filter {
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) res;
HttpServletRequest request = (HttpServletRequest) req;
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Headers", "*");
if (request.getMethod().equals(HttpMethod.OPTIONS.name())) {
response.setStatus(HttpStatus.NO_CONTENT.value());
} else {
chain.doFilter(req, res);
}
}
@Override
public void init(FilterConfig filterConfig) {
}
@Override
public void destroy() {
}
}