跨域
跨域问题是出现是没有满足同源策略 同源策略:协议、域名、端口3个都相同就是同源
SpringBoot:http://localhost:8181/list
CORS:Cross Origin Resource Sharing
这两个请求端口号不同,就会产生跨域问题
SpringBoot项目中解决跨域的3种方案
1、在目标方法上添加@CrossOrigin注解
@CrossOrigin
2、添加CORS过滤器
//跨域配置
@Configuration
public class CorsConfig {
@Bean
public CorsFilter corsFilter() {
CorsConfiguration configuration =new CorsConfiguration();
configuration.addAllowedOrigin("*");
configuration.addAllowedHeader("*");
configuration.addAllowedMethod("*");
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**",configuration);
return new CorsFilter(source);
}
}
3、实现WebMvcConfigure接口,重写addCorsMappings方法
Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOriginPatterns("*")
.allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS")
.allowCredentials(true)
.maxAge(3600)
.allowedHeaders("*");
}
}