Spring Boot 配置跨域

58 阅读1分钟

出于安全性,浏览器会限制脚本内发起的跨源 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

@BeanCorsFilter 类装配到 IoC 容器中,没配置名字,将方法名作为 bean 的名称保存到 IoC 容器中。