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;
    	}
    }
    
  • 相关阅读:
    在数据集下建立FeatureClass
    打开对话框保存对话框
    C# 向数据库中添加数据
    OleDbCommand OleDbDataAdapter比较研究素材
    C# 判断数据库是否存在某张表
    AE常见问题、异常处理
    制作停靠窗体、悬浮窗Dockpanel
    11. Container With Most Water(js)
    10. Regular Expression Matching(js)
    9. Palindrome Number(js)
  • 原文地址:https://www.cnblogs.com/arrayblog/p/14196787.html
Copyright © 2011-2022 走看看