跨域问题的产生:同源策略。
同源策略:协议、域名、端口三个都相同就是同源。
解决方法:Cross Origin Resource Sharing(CORS)
spring boot项目中解决跨域问题的三种方法:
1、在目标方法或者目标类上加上注解:@CoressOrigin
2、添加CORS的过滤器:
@Bean
public CorsFilter corsFilter() {
// cors跨域配置对象
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedOrigin("*");
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addAllowedMethod("*");
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", corsConfiguration);
return new CorsFilter(source);
}
3、实现WebMvcConfigurer接口
//标注这个类是一个配置类
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**") //设置允许跨域访问的路径
.allowedOriginPatterns("*") //设置允许跨域访问的源
.allowedMethods("*") //允许跨域请求的方法
.maxAge(168000) //预检间隔时间
.allowedHeaders("*") //允许头部设置
.allowCredentials(true); //是否发送 cookie
}
}
参考资料: blog.csdn.net/m0_56736359… www.bilibili.com/video/BV12U…