關(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)文章
SpringBoot整合MongoDB完成增刪改查分頁查詢方式
本文介紹了如何在SpringBoot中整合MongoDB,包括依賴導(dǎo)入、連接配置、實(shí)體類創(chuàng)建、增刪改查、分頁查詢、時(shí)間范圍查詢以及基本操作的調(diào)試2025-11-11
Java根據(jù)坐標(biāo)經(jīng)緯度計(jì)算兩點(diǎn)距離5種方法及校驗(yàn)經(jīng)緯度是否在圓/多邊形區(qū)域內(nèi)的算法推薦
在項(xiàng)目開發(fā)過程中需要根據(jù)兩地經(jīng)緯度坐標(biāo)計(jì)算兩地間距離,下面這篇文章主要給大家介紹了關(guān)于Java根據(jù)坐標(biāo)經(jīng)緯度計(jì)算兩點(diǎn)距離5種方法以及校驗(yàn)經(jīng)緯度是否在圓/多邊形區(qū)域內(nèi)的算法推薦,需要的朋友可以參考下2023-12-12
SQL注入攻擊及其在SpringBoot中使用MyBatisPlus的防范策略的方法
本文介紹了如何使用SpringBoot整合JavaDeeplearning4j構(gòu)建一個(gè)文本摘要生成系統(tǒng),該系統(tǒng)能夠自動(dòng)從長篇文本中提取關(guān)鍵信息,生成簡潔的摘要,幫助用戶快速了解文本的主要內(nèi)容,系統(tǒng)使用LSTM神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,并通過SpringBoot創(chuàng)建RESTful?API進(jìn)行調(diào)用2024-11-11
SpringCloud手寫Ribbon實(shí)現(xiàn)負(fù)載均衡
這篇文章主要介紹了SpringCloud手寫Ribbon實(shí)現(xiàn)負(fù)載均衡的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
SpringBoot基于MyBatis-Plus實(shí)現(xiàn)Lambda Query查詢的示例代碼
MyBatis-Plus 是 MyBatis 的增強(qiáng)工具,簡化了數(shù)據(jù)庫操作,并提高了開發(fā)效率,它提供了多種查詢方式,包括常規(guī)的 SQL 查詢、Lambda Query 查詢、分頁查詢、條件查詢等,在本篇博客中,我們將詳細(xì)講解如何使用 MyBatis-Plus 的各種查詢方式,需要的朋友可以參考下2025-01-01
Spring MVC 更靈活的控制 json 返回問題(自定義過濾字段)
本篇文章主要介紹了Spring MVC 更靈活的控制 json 返回問題(自定義過濾字段),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-02-02
Mybatis如何傳入多個(gè)參數(shù)的實(shí)現(xiàn)代碼
這篇文章主要介紹了Mybatis如何傳入多個(gè)參數(shù)的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12

