第一种方式
在需要访问的接口上加上注解 @CrossOrigin
例:
@RequestMapping(path = "/index", method = RequestMethod.GET)
@ResponseBody
@CrossOrigin//解决跨域问题
public List<Map<String,Object>> getIndexPage2(){
List<String> res= new ArrayList<>();
res.add("spring");
res.add("boot");
//返回数据给前端
return res;
}
第二种方式
创建一个配置类,代码如下:
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Bean
public CorsFilter corsFilter() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedOrigin("/**");//允许哪些域访问
corsConfiguration.addAllowedHeader("*");//允许哪些请求头访问
corsConfiguration.addAllowedMethod("*");//允许哪些请求方法访问
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**",corsConfiguration);//设置映射
return new CorsFilter(source);
}
}
第三种方式
创建一个配置类,代码如下:
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").//设置映射
allowedOriginPatterns("*").//允许哪些域访问
allowedMethods("GET","POST","PUT").//允许哪些请求方法访问
allowCredentials(true).//是否可以携带Cookie
maxAge(3600).//3600秒内可以不用再访问该配置(是否允许该配置中的设置)
allowedHeaders("*");//允许哪些请求头访问
}
}