文章目录
java后端进行跨域的几种方式(包括controller的单个跨域、项目所有接口整体跨域)
一、使用@CrossOrigin注解
在controller类上加上@CrossOrigin注解,就能对这个类下面所有方法进行跨域访问了
@CrossOrigin
@Controller
@RequestMapping("/sztrade/channel")
public class TradeChannelController {
}
二、重写addCorsMappings方法
新建一个CorsConfiguration类,实现WebMvcConfigurer 接口
代码如下(示例):
@Configuration
public class CorsConfiguration implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOriginPatterns("*")
.allowCredentials(true)
.allowedMethods("GET", "POST", "DELETE", "PUT")
.maxAge(3600);
}
}
三、添加CORS过滤器
@Configuration
public class CorsConfig {
@Bean
public CorsFilter corsFilter() {
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
// 设置访问源地址
config.addAllowedOrigin("*");
// 设置访问源请求头
config.addAllowedHeader("*");
// 设置访问源请求方法
config.addAllowedMethod("*");
// 有效期 1800秒
config.setMaxAge(1800L);
// 添加映射路径,拦截一切请求
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", config);
// 返回新的CorsFilter
return new CorsFilter(source);
}
}