版权声明:LT https://blog.csdn.net/LitongZero/article/details/88258985
SpringBoot2.0 跨域处理
1.原因
在前后端项目分离时,最先遇到的问题也许就是
跨域
。其他原因,不再赘述。
2.环境
①.spring-boot
:2.1.0.RELEASE
3.解决跨域的伪三种方式(本质一样)
一、Application.java直接配置Bean
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public CorsFilter corsFilter() {
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
final CorsConfiguration config = new CorsConfiguration();
// 允许cookies跨域
config.setAllowCredentials(true);
// 允许向该服务器提交请求的URI,*表示全部允许。。这里尽量限制来源域,比如http://xxxx:8080
// ,以降低安全风险。。
config.addAllowedOrigin("*");
// 允许访问的头信息,*表示全部
config.addAllowedHeader("*");
// 预检请求的缓存时间(秒),即在这个时间段里,对于相同的跨域请求不会再预检了
config.setMaxAge(18000L);
// 允许提交请求的方法,*表示全部允许,也可以单独设置GET、PUT等
config.addAllowedMethod("*");
/*
* config.addAllowedMethod("HEAD"); config.addAllowedMethod("GET");//
* 允许Get的请求方法 config.addAllowedMethod("PUT");
* config.addAllowedMethod("POST"); config.addAllowedMethod("DELETE");
* config.addAllowedMethod("PATCH");
*/
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}
}
二、定义配置类
新建一个CorsConfig.java
(名字随意)
/**
* 说明:处理跨域请求
*
* @author lt
* @version v1.0
* @date 2018/1/21/
*/
@Configuration
@EnableWebMvc
public class CorsConfig implements WebMvcConfigurer {
//跨域处理 另一种方式
@Override
public void addCorsMappings(CorsRegistry registry) {
//设置允许跨域的路径
registry.addMapping("/**")
//设置允许跨域请求的域名
.allowedOrigins("*")
//是否允许证书 不再默认开启
.allowCredentials(true)
//设置允许的方法
.allowedMethods("*")
//跨域允许时间
.maxAge(3600);
}
}