zoukankan      html  css  js  c++  java
  • spring cors的三种方式

    @CrossOrigin 注解

    如果想要对某一接口配置 CORS,可以在方法上添加 @CrossOrigin 注解 :

    @CrossOrigin(origins = "http://localhost:3000", allowCredentials = "true")
    @RequestMapping(value = "/test", method = RequestMethod.GET)
    public String greetings() {
        return "{"project":"just a test"}";
    }
    

    如果想对一系列接口添加 CORS 配置,可以在类上添加注解,对该类声明所有接口都有效:

    @CrossOrigin(origins = {"http://localhost:9000", "null"})
    @RestController
    @SpringBootApplication
    public class SpringBootCorsTestApplication {
        
    }
    

    全局配置类

    由于WebMvcConfigurerAdapter类被弃用,新的实现是:

    @Configuration
    public class WebMvcConfg implements WebMvcConfigurer {
      //省略
    }
    @Configuration
    public class WebMvcConfg extends WebMvcConfigurationSupport {
      //省略
    }
    

    所以配置类可以这样写:

    @Configuration
    public class WebMvcConfig  implements WebMvcConfigurer{
        @Override
        public void addCorsMappings(CorsRegistry registry) {
            registry.addMapping("/**")
                    .allowedOrigins("http://localhost.com")
                    .allowedMethods("GET", "POST")
                    .allowedHeaders()
                    .allowCredentials(true);
        }
    }
    

    也可以这样写:

    @Configuration
    public class WebMvcConfig {
        @Bean
        public WebMvcConfigurationSupport corsBeanConfigurer() {
            return new WebMvcConfigurationSupport() {
                @Override
                protected void addCorsMappings(CorsRegistry registry) {
                    registry.addMapping("/**")
                            .allowedOrigins("http://localhost.com")
                            .allowedMethods("GET", "POST", "PUT", "DELETE")
                            .allowedHeaders()
                            .allowCredentials(true);
                }
            };
        }
    }
    

    过滤器

    过滤器添加头

    @Configuration
    public class MyConfiguration {
    
    	@Bean
    	public FilterRegistrationBean corsFilter() {
    		UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
    		CorsConfiguration config = new CorsConfiguration();
    		config.setAllowCredentials(true);
    		config.addAllowedOrigin("http://domain1.com");
    		config.addAllowedHeader("*");
    		config.addAllowedMethod("*");
    		source.registerCorsConfiguration("/**", config);
    		FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
    		bean.setOrder(0);
    		return bean;
    	}
    }
    
  • 相关阅读:
    Matlab高级教程_第一篇:Matlab基础知识提炼_01
    量化投资_量化投资系统框架的DIY_02_01
    计量经济与时间序列_时间序列之物理含义
    计量经济与时间序列_协整和误差修正模型
    数学之美_正态分布(Python代码)
    [转载] ./configure,make,make install的作用
    [转载]Deep Learning(深度学习)学习笔记整理
    AJAX XML 实例
    百度搜索插件源码
    apache 服务器在ubuntu上图片无法显示解决
  • 原文地址:https://www.cnblogs.com/arrayblog/p/14196787.html
Copyright © 2011-2022 走看看