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

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;@Configurationpublic 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);     } }

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

内容出处:,

声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。文章链接:http://www.yixao.com/tech/29892.html

发表评论

登录后才能评论