解决跨域问题

 1 import org.springframework.context.annotation.Bean;
 2 import org.springframework.context.annotation.Configuration;
 3 import org.springframework.web.cors.CorsConfiguration;
 4 import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
 5 import org.springframework.web.filter.CorsFilter;
 6 import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
 7 
 8 
 9 /**
10  * 拦截器配置
11  */
12 @Configuration
13 public class WebConfig extends WebMvcConfigurationSupport {
14 
15     /**
16      * 跨域和拦截器冲突,不重写 addCorsMappings 采用过滤器设置跨域
17      * 改用过滤器CorsFilter 来配置跨域,由于Filter的位置是在Interceptor之前的,问题得到解决
18      */
19     @Bean
20     public CorsFilter corsFilter() {
21         CorsConfiguration config = new CorsConfiguration();
22         // 设置允许跨域请求的域名 * 表示所有
23         config.addAllowedOrigin("*");
24         // 是否允许证书 不再默认开启
25         config.setAllowCredentials(true);
26         // 设置允许的方法
27         config.addAllowedMethod("*");
28         // 允许任何请求头
29         config.addAllowedHeader("*");
30         config.addExposedHeader("X-Token");
31         UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource();
32         configSource.registerCorsConfiguration("/**", config);
33         return new CorsFilter(configSource);
34     }
35 
36 }
posted @ 2021-01-27 14:01  宁任翃  阅读(78)  评论(0编辑  收藏  举报