1.在springboot中解决跨域的问题,用两种方法,一种是在类名或方法名前加上注解@CrossOrigin即可,但是在每个方法前都加上注解都很麻烦,因为是前后端分离,几乎所有的方法的都需要跨域访问,这是时候就要用到另一种方法了,添加一个配置类即可
/**
* 允许跨域访问
* 跨域访问类配置
*/
@Configuration
public class CorsConfig {
private CorsConfiguration buildConfig(){
CorsConfiguration corsConfiguration=new CorsConfiguration();
corsConfiguration.addAllowedOrigin("*");//允许任何域名
corsConfiguration.addAllowedHeader("*");//允许任何头
corsConfiguration.addAllowedMethod("*");//允许任何方法(post,get,delete...)
return corsConfiguration;
}
@Bean
public CorsFilter corsFilter(){
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**",buildConfig());
return new CorsFilter(source);
}
}
2.但在整合到springsecurity的时候,发现token失效或为空获取不到返回的状态码问题,是因为springsecurity的配置也要允许跨域访问,springsecurity配置类里加上.cors()即可