出于安全性,浏览器会限制脚本内发起的跨源 HTTP 请求。
在前端进行接口测试时,会出现跨域错误,因此这边在后端配置跨域配置。
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;
/**
* 全局跨域配置
*
* @author yunhu
* @date 2023/8/15
*/
@Configuration
public class GlobalCorsConfig {
/**
* 允许跨域调用的过滤器
*/
@Bean
public CorsFilter corsFilter() {
CorsConfiguration config = new CorsConfiguration();
// 允许所有域名进行跨域调用
config.addAllowedOriginPattern("*");
// 允许跨域发送 cookie
config.setAllowCredentials(true);
// 放行全部原始头信息
config.addAllowedHeader("*");
// 允许所有请求方法跨域调用
config.addAllowedMethod("*");
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}
}
@Configuration 代表这是一个 Java 配置文件,根据它生成的 IoC 容器,然后去装配 Bean。
@Bean 将 CorsFilter 类装配到 IoC 容器中,没配置名字,将方法名作为 bean 的名称保存到 IoC 容器中。