springboot项目中解决跨域问题,前端无法访问后端数据

第一种方式

在需要访问的接口上加上注解 @CrossOrigin

例:

    @RequestMapping(path = "/index", method = RequestMethod.GET)
    @ResponseBody
    @CrossOrigin//解决跨域问题
    public List> getIndexPage2(){

        List res= new ArrayList<>();
        res.add("spring");
        res.add("boot");

        //返回数据给前端
        return res;
    }

 第二种方式

创建一个配置类,代码如下:

@Configuration
public class CorsConfig implements WebMvcConfigurer {
    @Bean
    public CorsFilter corsFilter() {
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.addAllowedOrigin("/**");//允许哪些域访问
        corsConfiguration.addAllowedHeader("*");//允许哪些请求头访问
        corsConfiguration.addAllowedMethod("*");//允许哪些请求方法访问
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**",corsConfiguration);//设置映射
        return new CorsFilter(source);
    }
}

 第三种方式

创建一个配置类,代码如下:

@Configuration
public class CorsConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**").//设置映射
                allowedOriginPatterns("*").//允许哪些域访问
                allowedMethods("GET","POST","PUT").//允许哪些请求方法访问
                allowCredentials(true).//是否可以携带Cookie
                maxAge(3600).//3600秒内可以不用再访问该配置(是否允许该配置中的设置)
                allowedHeaders("*");//允许哪些请求头访问
    }
}

你可能感兴趣的:(Spring,spring,boot,java,spring)