配置SpringBoot项目允许跨域访问

只需两步:

第一步,添加配置类:

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;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @author xrw
 * 跨域请求配置
 */
@Configuration
public class WebConfig implements WebMvcConfigurer {

    //从配置文件中读取允许访问的非本机地址
    @Value("${wedOrigin.name}")
    private  String wn;

    //允许跨域请求
    @Bean
    public CorsFilter corsFilter() {
        CorsConfiguration corsConfiguration = new CorsConfiguration();

        //遍历数组,将允许访问的地址添加进去
        String [] result = wn.split(",");
        for (int i=0;i<result.length;i++){
            corsConfiguration.addAllowedOrigin(result[i]);
        }  
      
        //这一句表示允许任何地址访问服务器
        //corsConfiguration.addAllowedOrigin("*");
        corsConfiguration.addAllowedHeader("*");
        corsConfiguration.addAllowedMethod("*");
        corsConfiguration.setAllowCredentials(true);
        UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
        urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration);
        return new CorsFilter(urlBasedCorsConfigurationSource);
    }
}

 第二部,配置文件application.xml中添加配置:

wedOrigin:
    name: [192.168.1.1,127.0.0.1]

如此,跨域问题完美解决

使用 @Value将配置文件的值注入到属性中的教程见我另一篇博客:https://blog.csdn.net/qq_26356861/article/details/100303979

 


版权声明:本文为qq_26356861原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。