Spring boot 总结之跨域处理cors


声明:本文转载自https://my.oschina.net/huaxian8812/blog/1618329,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

背景

现在做的很多项目都是前后端分离的,这就引出一个很常见的问题,我们的页面和接口是在不同域名下的,当我们通过ajax访问后端接口的时候就会出现跨域问题,这种问题我们怎么解决呢?一般来说就是cors和jsonp这两种方案。Spring简化了cors的配置,接下来我们来看一下它提供的cors。

WebMvcConfigurer对象

我们可以初始化一个WebMvcConfigurer对象来配置我们的cors映射。

@Configuration public class CorsCongiguration {     @Bean     public WebMvcConfigurer corsConfigurer() {         return new WebMvcConfigurerAdapter() {             @Override             public void addCorsMappings(CorsRegistry registry) {                 registry.addMapping("/api/**"); // 允许所有第三方域名访问该接口                 // .allowedOrigins("http://domain2.com")//指定来源域名                 // .allowedMethods("PUT", "DELETE")                 // .allowedHeaders("header1", "header2", "header3")                 // .exposedHeaders("header1", "header2")                 // .allowCredentials(false).maxAge(3600);             }         };     } } 

继承WebMvcConfigurerAdapter

这种方式跟上面的方式很类似

@Configuration @EnableWebMvc public class CorsConfiguration_2 extends WebMvcConfigurerAdapter {      @Override     public void addCorsMappings(CorsRegistry registry) {         registry.addMapping("/api/**");     } } 

corsFilter

这种方式现在很少用

@Component @EnableWebMvc public class CorsFilterCongiguration extends CorsFilter {      public CorsFilterCongiguration(CorsConfigurationSource configSource) {         super(configSource);     }      @Bean     public FilterRegistrationBean corsFilter() {         UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();         CorsConfiguration config = new CorsConfiguration();         config.setAllowCredentials(true);         config.addAllowedOrigin("*"); //        config.addAllowedOrigin("http://domain1.com");         config.addAllowedHeader("*");         config.addAllowedMethod("*");         source.registerCorsConfiguration("/api/**", config);         FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));         bean.setOrder(0); // 必须在所有Filter之前         return bean;     }  } 

本文发表于2018年02月05日 08:38
(c)注:本文转载自https://my.oschina.net/huaxian8812/blog/1618329,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 1817 讨论 0 喜欢 0

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1