前后端分离开发中的跨域问题解决

130 阅读1分钟

跨域问题的产生:同源策略。

同源策略:协议、域名、端口三个都相同就是同源。

解决方法:Cross Origin Resource Sharing(CORS)

spring boot项目中解决跨域问题的三种方法:
1、在目标方法或者目标类上加上注解:@CoressOrigin

2、添加CORS的过滤器:
@Bean
public CorsFilter corsFilter() {
    
    // cors跨域配置对象
    CorsConfiguration corsConfiguration = new CorsConfiguration();
    corsConfiguration.addAllowedOrigin("*");
    corsConfiguration.addAllowedHeader("*");
    corsConfiguration.addAllowedMethod("*");
    
    UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
    source.registerCorsConfiguration("/**", corsConfiguration);

    return new CorsFilter(source);
}

3、实现WebMvcConfigurer接口
//标注这个类是一个配置类
@Configuration
public class CorsConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")  //设置允许跨域访问的路径
                .allowedOriginPatterns("*")  //设置允许跨域访问的源
                .allowedMethods("*")  //允许跨域请求的方法
                .maxAge(168000)  //预检间隔时间
                .allowedHeaders("*")  //允许头部设置
                .allowCredentials(true);  //是否发送 cookie
    }
}

参考资料: blog.csdn.net/m0_56736359… www.bilibili.com/video/BV12U…