關(guān)于springboot的跨域配置問題的解決方案
傳統(tǒng)跨域是springboot中CorsRegistry添加添加處理的CorsMapping,這種跨域處理可以處理controller的請(qǐng)求。
@Configuration public class CorsConfig implements WebMvcConfigurer { static final String[] ORIGINS = new String[] { "GET", "POST", "PUT", "DELETE" }; @Override public void addCorsMappings(CorsRegistry registry) { // 所有的當(dāng)前站點(diǎn)的請(qǐng)求地址,都支持跨域訪問。 registry.addMapping("/**") // 所有的外部域都可跨域訪問 .allowedOrigins("*") // 是否支持跨域用戶憑證 .allowCredentials(true) // 當(dāng)前站點(diǎn)支持的跨域請(qǐng)求類型是什么 .allowedMethods(ORIGINS) // 超時(shí)時(shí)長設(shè)置為1小時(shí),時(shí)間單位是秒。 .maxAge(3600); } }
但如果遇到spring boot集成spring security的時(shí)候,登錄時(shí)處理是在filter中的,傳統(tǒng)的跨域沒有辦法處理,這時(shí)候我們要采用一種新的實(shí)現(xiàn)方案:基于filter的跨域?qū)崿F(xiàn)。
基于filter實(shí)現(xiàn)可以處理filter中的跨域問題,這里原理很簡單,需要注意是要設(shè)置CorsFilter的優(yōu)先級(jí):Ordered.HIGHEST_PRECEDENCE(加載到過濾器鏈最前面!?。。?/p>
@Configuration public class CorsConfig { private CorsConfiguration buildConfig() { CorsConfiguration corsConfiguration = new CorsConfiguration(); corsConfiguration.addAllowedOrigin("*"); corsConfiguration.addAllowedHeader("*"); corsConfiguration.addAllowedMethod("*"); corsConfiguration.addExposedHeader("*"); return corsConfiguration; } @Bean public FilterRegistrationBean<CorsFilter> corsFilter() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); // 對(duì)接口配置跨域設(shè)置 source.registerCorsConfiguration("/**", buildConfig()); //有多個(gè)filter時(shí)此處設(shè)置改CorsFilter的優(yōu)先執(zhí)行順序 FilterRegistrationBean<CorsFilter> bean = new FilterRegistrationBean<>(new CorsFilter(source)); bean.setOrder(Ordered.HIGHEST_PRECEDENCE); return bean; } }
經(jīng)過測(cè)試,這種處理方法可以輕松應(yīng)對(duì)springboot的跨域問題。
到此這篇關(guān)于關(guān)于springboot的跨域配置問題的解決方案的文章就介紹到這了,更多相關(guān)springboot跨域配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Data JPA中的動(dòng)態(tài)查詢實(shí)例
本篇文章主要介紹了詳解Spring Data JPA中的動(dòng)態(tài)查詢。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04mybatis通過XML的方式拼接動(dòng)態(tài)sql
動(dòng)態(tài)SQL是一種在運(yùn)行時(shí)構(gòu)造和執(zhí)行SQL語句的技術(shù),這篇文章主要為大家介紹了mybatis如何通過XML的方式拼接動(dòng)態(tài)sql,有需要的小伙伴可以參考一下2024-12-12maven無法依賴spring-cloud-stater-zipkin的解決方案
這篇文章主要介紹了maven無法依賴spring-cloud-stater-zipkin如何解決,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05解決MyEclipse出現(xiàn)the user operation is waiting的問題
今天做項(xiàng)目的時(shí)候每次修改代碼保存后都會(huì)跳出一個(gè)框框,然后就有兩個(gè)進(jìn)度條,上面寫the user operation is wating...小編去網(wǎng)上查了查解決了這個(gè)問題,下面跟大家分享一下。2018-04-04JAVA實(shí)現(xiàn)社會(huì)統(tǒng)一信用代碼校驗(yàn)的方法
這篇文章主要介紹了JAVA實(shí)現(xiàn)社會(huì)統(tǒng)一信用代碼校驗(yàn)的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07MyBatis-Plus中靜態(tài)工具Db的多種用法及實(shí)例分析
本文將詳細(xì)講解MyBatis-Plus中靜態(tài)工具Db的各種用法,并結(jié)合具體案例進(jìn)行演示和說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03