Talk is cheap

SpringBoot 配置Cors跨域设置

配置跨域Cors:springboot的默认模板中中已经有了控制跨域的相关方法

  1. 对于单个的请求,只需要在请求方法上添加 @CrossOrigin 注解即可。

    @CrossOrigin(origins = "http://localhost:9000")
    @GetMapping("/greeting")
    public Greeting greeting(@RequestParam(required=false, defaultValue="World") String name) {
        System.out.println("==== in greeting ====");
        return new Greeting(counter.incrementAndGet(), String.format(template, name));
    }

    如果注解中什么参数都不带,即可表示对所有的请求源都有作用。当然还可配置orgins ,methods, allowedHeaders, exposedHeaders,
    allowCredentials , maxAge

  2. 配置单个的请求显然会比较麻烦,如果要全局配置Cors,只需要实现WebMvcConfigurer接口,重写addCorsMappings接口即可。

    @Configuration
    @EnableWebMvc
    public class WebConfig implements WebMvcConfigurer {
    
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**");
    }
    }

    官方文档的写法更为简洁,直接在程序的入口文件中写了一个方法,返回一个WebMvcConfigurer 对象,注解为@Bean即可

    @Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurer() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                /*允许所有的域名,允许所有头*/
                registry.addMapping("/**")
                        .allowedMethods("*")
                        .allowedOrigins("*")
                        .allowedHeaders("*");
            }
        };
    }

    从这个例子也可以加深对 javaBean 的理解。

未经允许不得转载:CheapTalk » SpringBoot 配置Cors跨域设置
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!