暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

不用调整Nginx,SpringBoot也能解决前端访问的跨域问题

追风人聊Java 2021-09-15
505

1、什么情况下会出现跨域问题

通常,在前端工程师的开发过程中,往往在本地机器启动前端服务, 而调用的后端接口服务是在另外一台机器运行,这时就会出现跨域问题,让接口无法调通。

而到了测试环境和生产环境,可以使用Nginx去解决这个问题。

这里我们仅考虑开发环境,在不借助Nginx的情况下,解决跨域。

2、解决方案

在SpringBoot工程中,增加跨域配置即可。

3、实现

新增一个跨域配置类 CrossDomainConfig,在其中配置允许跨域访问的url、请求方式、Header等。代码如下:


    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;


    @Configuration
    public class CrossDomainConfig{


    public CrossDomainConfig() {


    }
      private CorsConfiguration buildConfig() {
        
         // 添加cors配置信息
      CorsConfiguration corsConfiguration = new CorsConfiguration();
         corsConfiguration.addAllowedOrigin("http://localhost:8080");
      // * 代表所有url
    corsConfiguration.addAllowedOrigin("*");


    // 设置允许请求的方式
    corsConfiguration.addAllowedMethod("*");


    // 设置允许的header
    corsConfiguration.addAllowedHeader("*");

    // 设置是否发送cookie信息
    corsConfiguration.setAllowCredentials(true);


      return corsConfiguration;
      }


    @Bean
    public CorsFilter corsFilter() {
     
    // 为url添加映射路径
    UrlBasedCorsConfigurationSource crossDomainSource = new UrlBasedCorsConfigurationSource();
    crossDomainSource.registerCorsConfiguration("/**", buildConfig());

    // 返回重新定义好的配置
    return new CorsFilter(crossDomainSource);
    }
    }


    重启后台工程,会发现,跨域问题被如此简单的解决了。


    文章转载自追风人聊Java,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论