springcloud微服務(wù)跨域的配置小結(jié)
注意:關(guān)于跨域,不同的跨域類型需要不同的配置
一、相同的二級(jí)域名之間的跨域
最近在處理跨域問題的時(shí)候,發(fā)現(xiàn)在微服務(wù)中配置允許跨域配置,發(fā)現(xiàn)也無濟(jì)于事了。排查發(fā)現(xiàn),之前之所以這樣配置能夠生效,是因?yàn)槎际窍嗤亩?jí)域名之間的跨域,比如:service.csdn.com訪問api.csdn.com,這種相同的二級(jí)域名配置跨域,可以直接在我們的微服務(wù)中添加下列配置進(jìn)行解決
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("*")
.allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS")
.allowCredentials(false).maxAge(3600);
}
}二、不同的二級(jí)域名之間的跨域
什么是不同的二級(jí)域名?比如從service.csdn.com站點(diǎn)訪問 api.abcd.com的時(shí)候,這時(shí)候在我們的為服務(wù)器中配置上面的配置,你就會(huì)發(fā)現(xiàn)無濟(jì)于事,還是會(huì)拋出跨域請(qǐng)求異常,這個(gè)時(shí)候,就需要在我們的springcloud gateway網(wǎng)關(guān)的服務(wù)里去配置跨域了,具體配置如下:
spring:
cloud:
gateway:
#這個(gè)是解決和其他微服務(wù)配置的跨域沖突的
default-filters:
- DedupeResponseHeader=Vary Access-Control-Allow-Credentials Access-Control-Allow-Origin
- DedupeResponseHeader=Access-Control-Allow-Origin
globalcors:
cors-configurations:
'[/**]':
# 允許跨域的源(網(wǎng)站域名/ip),設(shè)置*為全部
# 允許跨域請(qǐng)求里的head字段,設(shè)置*為全部
# 允許跨域的method, 默認(rèn)為GET和OPTIONS,設(shè)置*為全部
allow-credentials: true
# allowedOriginPatterns: "*"
#這里是配置允許跨域過來的網(wǎng)站,建議用這種
allowed-origins:
- "http://service.csdn.com"
allowed-headers: "*"
allowed-methods:
- OPTIONS
- GET
- POST
- DELETE
- PUT
- PATCH
max-age: 3600上述的兩種配置,基本就能夠解決大多數(shù)的跨域問題了。如果在網(wǎng)關(guān)里配置跨域了,其實(shí)微服務(wù)的跨域就可以取消不用了。結(jié)合自己的實(shí)際情況,選擇跨域配置,才是最好的選擇。
到此這篇關(guān)于springcloud微服務(wù)跨域的配置小結(jié)的文章就介紹到這了,更多相關(guān)springcloud 跨域配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
從零開始設(shè)計(jì)基于SpringBoot的Serverless(本地函數(shù)計(jì)算)引擎
最近突然冒出一個(gè)想法:能不能用SpringBoot自己實(shí)現(xiàn)一個(gè)類似AWS Lambda或阿里云函數(shù)計(jì)算的執(zhí)行引擎,所以下面我們就來看看如何從零開始設(shè)計(jì)一套基于SpringBoot的Serverless執(zhí)行框架吧2025-07-07
mybatis-plus插入一條數(shù)據(jù),獲取插入數(shù)據(jù)自動(dòng)生成的主鍵問題
這篇文章主要介紹了mybatis-plus插入一條數(shù)據(jù),獲取插入數(shù)據(jù)自動(dòng)生成的主鍵問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
Spring Boot使用線程池創(chuàng)建多線程的完整示例
在 Spring Boot 2 中,可以使用 @Autowired 注入 線程池(ThreadPoolTaskExecutor 或 ExecutorService),從而管理線程的創(chuàng)建和執(zhí)行,以下是使用 @Autowired 方式注入線程池的完整示例,感興趣的朋友一起看看吧2025-03-03
java多線程消息隊(duì)列的實(shí)現(xiàn)代碼
本篇文章主要介紹了java多線程消息隊(duì)列的實(shí)現(xiàn)代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07
如何使用MyBatis Plus實(shí)現(xiàn)數(shù)據(jù)庫curd操作
MyBatis-Plus是一個(gè)MyBatis 的增強(qiáng)工具,在MyBatis,的基礎(chǔ)上只做增強(qiáng)不做改變,為簡(jiǎn)化開發(fā)、提高效率而生。 這篇文章主要介紹了MyBatis Plus實(shí)現(xiàn)數(shù)據(jù)庫curd操作,需要的朋友可以參考下2021-09-09
Java基于Dijkstra算法實(shí)現(xiàn)校園導(dǎo)游程序
這篇文章主要為大家詳細(xì)介紹了Java基于Dijkstra算法實(shí)現(xiàn)校園導(dǎo)游程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
詳解Java中l(wèi)ist,set,map的遍歷與增強(qiáng)for循環(huán)
這篇文章主要介紹了詳解Java中l(wèi)ist,set,map的遍歷與增強(qiáng)for循環(huán)的相關(guān)資料,需要的朋友可以參考下2017-02-02
bool當(dāng)成函數(shù)參數(shù)錯(cuò)誤理解
經(jīng)常會(huì)在函數(shù)的參數(shù)里使用bool參數(shù),這會(huì)大大地降低代碼的可讀性2012-11-11

