1、问题:Access-Control-Allow-Origin
![]()
2、解决方式一:返回新的CorsFilter【全局】
package com.baihua.common.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;
/**
* 通过返回新的CorsFilter解决跨域问题【全局】
*/
@Configuration
public class CrosConfig {
@Bean
public CorsFilter getCorsFilter() {
// 1、配置CROS信息
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedOrigin("*"); // 放行哪些请求源
corsConfiguration.addAllowedMethod("*"); // 放行哪些请求方式(如: GET、POST...)
corsConfiguration.addAllowedHeader("*"); // 放行哪些请求头
corsConfiguration.setMaxAge(3600L); // 跨域请求最大有效时长
// 2、对接口配置跨域设置
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", corsConfiguration);
// 3、返回新的CorsFilter
return new CorsFilter(source);
}
}
package com.baihua.common.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* 通过重写WebMvcConfigurer接口的addCorsMappings方法,解决跨域问题【全局】
*/
@Configuration
public class WebMvcCrosConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**") // 映射路径
.allowedOrigins("*") // 放行哪些请求源
.allowedMethods("*") // 放行哪些请求方式(如: GET、POST...)
.allowedHeaders("*") // 放行哪些请求头
.maxAge(3600L); // 跨域请求最大有效时长
}
}
4、测试结果【成功解决】
![]()
5、gateWay配置时
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.reactive.CorsWebFilter;
import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
/**
* gateWay网关配置时,注意导包
* org.springframework.web.cors.reactive.CorsWebFilter;
* org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
*
* @Author baihua
* @Date 2024/3/11
*/
@Configuration
public class CrosConfig {
@Bean
public CorsWebFilter corsFilter(){
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.setAllowCredentials(true);
corsConfiguration.addAllowedOrigin("*");
corsConfiguration.addAllowedMethod("*");
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addExposedHeader("*");
UrlBasedCorsConfigurationSource corsConfigurationSource = new UrlBasedCorsConfigurationSource();
corsConfigurationSource.registerCorsConfiguration("/**",corsConfiguration);
//3. 返回新的CorsFilter
return new CorsWebFilter(corsConfigurationSource);
}
}