關於springboot2.4跨域配置問題
1、如果隻是一個簡單的springboot demo,用以下配置就行
新建config類
``` import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; /** * @author yk * @date 2021/7/19 14:36 */ @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOriginPatterns("*") .allowedMethods("*") .maxAge(3600) .allowCredentials(true); } } ```
2、但是實際開發中我們需要結合,spring-security、oauth2等等,就會發現上面的配置失效瞭,那是因為前面的Filter優先級太高瞭,那我們可以采取如下配置
``` import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.Ordered; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBasedCorsConfigurationSource; import org.springframework.web.filter.CorsFilter; /** * @author yk * @date 2021/7/19 16:21 */ @Configuration public class CrosConfig { @Bean public FilterRegistrationBean corsFilter() { CorsConfiguration config = new CorsConfiguration(); config.setAllowCredentials(true); config.addAllowedOriginPattern("*"); config.addAllowedHeader("*"); config.addAllowedMethod("*"); UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration("/**", config); FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source)); //這裡設置優先級最高 bean.setOrder(Ordered.HIGHEST_PRECEDENCE); return bean; } }
到此這篇關於springboot2.4跨域配置的文章就介紹到這瞭,更多相關springboot跨域配置內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- springboot 設置CorsFilter跨域不生效的解決
- SpringBoot開發技巧之如何處理跨域請求CORS
- 解決Vue+SpringBoot+Shiro跨域問題
- 最新springboot解決跨域的幾種方式小結
- 教你用Java SpringBoot如何解決跨域