在 @Configuration下的类加一个Bean配置
private static final int TOKEN_FILTER_ORDER = Integer.MAX_VALUE;
/**
* corsFilter
*
* @return
*/
@Bean
public FilterRegistrationBean<CorsFilter> corsFilter() {
FilterRegistrationBean<CorsFilter> registrationBean = new FilterRegistrationBean<CorsFilter>();
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration configuration = new CorsConfiguration();
configuration.setAllowedOrigins(Arrays.asList("http://localhost:8080, http://127.0.0.1:8080".split("\\s*,\\s*")));
configuration.setAllowedMethods(Arrays.asList("GET, POST, OPTIONS, PUT, PATCH, DELETE".split("\\s*,\\s*")));
configuration.setAllowedHeaders(Arrays.asList("Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With, Language, Authorization, Accept".split("\\s*,\\s*")));
/**
* 是否允许认证信息
*/
configuration.setAllowCredentials(true);
configuration.setMaxAge(3600L);
source.registerCorsConfiguration("/**", configuration);
CorsFilter corsFilter = new CorsFilter(source);
registrationBean.setFilter(corsFilter);
registrationBean.setName("CorsFilter");
registrationBean.setOrder(TOKEN_FILTER_ORDER - 1);
registrationBean.addUrlPatterns("/*");
return registrationBean;
}
本文详细介绍了如何在SpringBoot项目中使用@Configuration注解配置CORS跨域请求,通过创建并注册自定义的CorsFilter实现对特定来源、方法及头部信息的支持,确保了前后端分离应用的顺利交互。
2565

被折叠的 条评论
为什么被折叠?



