config包下CorsConfig.java
package com.example.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
//@CrossOrigin 局部跨域
//以下解决跨域问题 全局跨域
@Configuration
public class CorsConfig {
// 当前跨域请求最大有效时长。这里默认1天
private static final long MAX_AGE = 24 * 60 * 60;
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedOrigin("http://localhost:8080"); // 1 设置访问源地址 *代表任意
corsConfiguration.addAllowedHeader("*"); // 2 设置访问源请求头
corsConfiguration.addAllowedMethod("*"); // 3 设置访问源请求方法
corsConfiguration.setMaxAge(MAX_AGE);
source.registerCorsConfiguration("/**", corsConfiguration); // 4 对接口配置跨域设置
return new CorsFilter(source);
}
}
=============================================================
SpringBoot跨域问题解决方法
跨域请求JSONP(前后端都要写代码)
![](https://i-blog.csdnimg.cn/blog_migrate/2d45602fd2cb06b2aa560f39061915a1.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c003b616f60c8561bfff3daed921fe0f.png)
CORS(跨源资源共享)方法
![](https://i-blog.csdnimg.cn/blog_migrate/7f276df03e93c5e52430a9eb8f1a786a.png)
@CrossOrigin()(单个接口支持跨域)
![](https://i-blog.csdnimg.cn/blog_migrate/5da71236a9b7ef560b50be7aca100527.png)
实现WebMvcConfigurer的addCorsMappings方法(某一批接口支持跨域)
public class InterceptorConfig implements WebMvcConfigurer {
// 跨域第二种方法
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
// .allowedOrigins("*")
.allowedOriginPatterns("*")// 设置允许跨域请求的域名
.allowedHeaders("*")// 设置允许的请求头
.allowCredentials(true)// 是否允许证书
.allowedMethods("*")// 允许的方法
.maxAge(3600);// 跨域允许时间
}
}
实现corsFilter()拦截器(某一批接口支持跨域)
//以下解决跨域问题 全局跨域
@Configuration
public class CorsConfig {
// 当前跨域请求最大有效时长。这里默认1天
private static final long MAX_AGE = 24 * 60 * 60;
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedOrigin("http://localhost:8080"); // 1 设置访问源地址 *代表任意
corsConfiguration.addAllowedHeader("*"); // 2 设置访问源请求头
corsConfiguration.addAllowedMethod("*"); // 3 设置访问源请求方法
corsConfiguration.setMaxAge(MAX_AGE);
source.registerCorsConfiguration("/**", corsConfiguration); // 4 对接口配置跨域设置
return new CorsFilter(source);
}
}
NGINX反向代理
![](https://i-blog.csdnimg.cn/blog_migrate/62d3f68eff301cbdf3e918efb84c1f9d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/aa98af6638302d38e7b9ac4feb3a0ce5.png)