關(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)過測試,這種處理方法可以輕松應(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-04
mybatis通過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-12
maven無法依賴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-04
JAVA實(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-07
MyBatis-Plus中靜態(tài)工具Db的多種用法及實(shí)例分析
本文將詳細(xì)講解MyBatis-Plus中靜態(tài)工具Db的各種用法,并結(jié)合具體案例進(jìn)行演示和說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03

