方法一 生成一个CorsFilter 的配置类:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter
@Configuration
public class FgbCorsConfig {
@Bean
public CorsFilter corsFilter(){
UrlBasedCorsConfigurationSource corsConfigurationSource=new UrlBasedCorsConfigurationSource();
CorsConfiguration corsConfiguration=new CorsConfiguration();
//这里注意 在低版本中方法为addAllowedOrigin
corsConfiguration.addAllowedOriginPattern("*");
corsConfiguration.setAllowCredentials(true);
//*代表所有的请求方法
corsConfiguration.addAllowedMethod("*");
//允许携带人后头信息
corsConfiguration.addAllowedHeader("*");
corsConfigurationSource.registerCorsConfiguration("/**",corsConfiguration);
//参数是 cors配置源对象
return new CorsFilter(corsConfigurationSource);
}
}
方法二 在配置类中放入一个WebMvcConfigurer 的Bean:
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
// 重写父类提供的跨域请求处理的接口
@Override
public void addCorsMappings(CorsRegistry registry) {
// 添加映射路径
registry.addMapping("/**")
// 放行哪些原始域
.allowedOriginPatterns("*")
// 是否发送Cookie信息
.allowCredentials(true)
// 放行哪些原始域(请求方式)
.allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS", "PATCH")
// 放行哪些原始域(头部信息)
.allowedHeaders("*")
// 暴露哪些头部信息(因为跨域访问默认不能获取全部头部信息)
.exposedHeaders("*")
// 预请求的结果有效期,默认1800分钟,3600是一小时
.maxAge(3600);
}
};
}
方法三:
在controller上加上
@CrossOrigin//解决跨域请求的注解
注解