控制层类上或者方法
在控制层类上或者方法上直接添加 @CrossOrigin 注解即可
@RestController
@CrossOrigin
@RequestMapping("/user")
public class UserController {}
更多详细设置如下
@CrossOrigin(origins = "http://192.168.1.97:8080", maxAge = 3600)
@RequestMapping("/user")
@RestController
public class UserController {}
通过 cors 协议
通过 cors 协议处理跨域问题,需要在添加了 @Configuration 注解的配置类中实现如下方法
@Configuration
public class MyWebAppConfigurer extends WebMvcConfigurerAdapter {
// 推荐
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/**")
.allowedOrigins("http://192.168.1.97")
.allowedMethods("GET", "POST")
.allowCredentials(false)
.maxAge(3600);
}
}
或者
@Configuration
public class AppConfig {
// 设置跨域访问
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.setAllowedOrigins(Arrays.asList("*"));
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addAllowedMethod("*");
// 允许 cookie 跨域
corsConfiguration.setAllowCredentials(true);
corsConfiguration.setMaxAge(3600L);
source.registerCorsConfiguration("/**", corsConfiguration);
return new CorsFilter(source);
}
}