在Spring中配置Cors,通常有两种方式:
第一种,实现WebMvcConfigurer#addCorsMappings
方法:
@Configuration public class WebMvcConfigApp implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("http://localhost:8733") .allowedMethods("GET", "POST", "PUT", "DELETE") .allowedHeaders("*") .allowCredentials(true).maxAge(3600); } }
它只会在Spring中的Interceptor
和Handler
中生效。
第二种,注入CorsFilter
:
@Bean public FilterRegistrationBean corsFilter() { FilterRegistrationBean bean = new FilterRegistrationBean(new MyCorsFilter()); bean.setOrder(0); return bean; }
它会在Filter中生效。
对于Shiro
框架来说,因为它是基于Filter
实现的,要处理跨域问题,我们需要使用注入CorsFilter
来实现,注意要设置顺序。