1.创建filter解决跨域
@Configuration
public class CorsConfig {
@Bean
public CorsFilter corsFilter() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedOrigin("*");
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addAllowedMethod("*");
corsConfiguration.setAllowCredentials(true);
UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration);
return new CorsFilter(urlBasedCorsConfigurationSource);
}
}
该方法在springboot2.7以后的版本不能执行,springboot要求允许的类型不能设置为*
2.实现webMvcConfigurer配置跨域
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")//项目中的所有接口都支持跨域
.allowedOriginPatterns("*")//所有地址都可以访问,也可以配置具体地址
.allowCredentials(true)
.allowedMethods("*")//"GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS"
.maxAge(3600);// 跨域允许时间
}
}
3.使用@CrosOrign注解
该注解可用于方法上或类上
@CrossOrigin
@GetMapping("/year-list")
public Result<List<String>> yearList(@RequestParam("city") String city) {
if (city.equals("")) {
log.info("字段信息缺少");
return Result.failure("city字段缺少");
}
log.info("查询{}市的年份列表", city);
return Result.success(otherMapper.yearList(city));
}
@CrossOrigin
public class OtherController {
具体方法...
}