最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

spring gateway如何解決跨域問題

 更新時間:2024年04月22日 10:13:26   作者:it界的哈士奇  
這篇文章主要介紹了spring gateway如何解決跨域問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

報錯截圖

報錯意思是請求頭中沒有Access-Control-Allow-Origin

報錯分析

但我在網(wǎng)關(guān)的配置文件中早就加了跨域的配置了

嘗試解決

于是我上網(wǎng)開始查

但是網(wǎng)上的代碼要么方法過時報錯,要么就向配置文件原因沒有起作用,好在我堅持不懈的查詢下,把所有有用的信息拼湊成了一個有用的配置方法

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.reactive.CorsWebFilter;
import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
import org.springframework.web.util.pattern.PathPatternParser;

@Configuration
public class CorsConfig {

    @Bean
    public CorsWebFilter corsWebFilter() {
        CorsConfiguration config = new CorsConfiguration();
        config.addAllowedMethod("*"); // 允許任何方法(post、get等)
        config.addAllowedOrigin("*"); // 允許任何域名使用
        config.addAllowedHeader("*"); // 允許任何頭
        config.setAllowCredentials(true); //允許接受cookie

        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser());
        source.registerCorsConfiguration("/**", config);

        return new CorsWebFilter(source);
    }
}

只要在網(wǎng)關(guān)微服務(wù)下創(chuàng)建一個配置類把這段代碼加進(jìn)去即可

于是

重新啟動

好家伙

再次報錯,不過這次不是沒有該屬性,而是兩個??!

那既然這樣

我就試試只用代碼配置,而注釋配置文件配置(因為開始就是配置文件配置無效)

重啟走起

依然報重復(fù)錯誤。。。。

最終

最后通過調(diào)試發(fā)現(xiàn)

請求發(fā)往網(wǎng)關(guān)后,再次發(fā)往其他微服務(wù),而該微服務(wù)的controller類上配置了跨域注解

這就導(dǎo)致了兩次Access-Control-Allow-Origin被設(shè)置了

所有只要把@CrossOrigin注解去了即可

再次重啟

總結(jié)

除了為啥在配置文件里配置沒有生效沒搞懂外,其他都能理解

同時這里也解釋了一個問題,為啥要專門寫一個接口api模塊來專門實(shí)現(xiàn)微服務(wù)間的調(diào)用

從這里調(diào)用用戶微服務(wù)來看,網(wǎng)關(guān)配置了跨域,那么其他的微服務(wù)就不能配置跨域了

那這樣微服務(wù)如果直接調(diào)用就成了跨域了,而api接口模塊就很好的解決了這個問題,同時也限制了服務(wù)與服務(wù)見可調(diào)用接口的數(shù)量,按需來調(diào)用,看來當(dāng)初聽老師話多創(chuàng)建一個api接口模塊是有原因的啊

解決睡覺!

補(bǔ)充?。?!

后來發(fā)現(xiàn)

刪除其他微服務(wù)的跨域配置在vue連接里可行

但是如果在html頁面直接發(fā)送axios請求后臺數(shù)據(jù)

請求網(wǎng)關(guān)可行,但是請求完了網(wǎng)關(guān),網(wǎng)關(guān)會進(jìn)行一次頁面轉(zhuǎn)發(fā)

這就使得第二次請求沒有Access-Control-Allow-Origin報跨域請求

如果將后臺服務(wù)的跨域配置重新寫上

又會出現(xiàn)Access-Control-Allow-Origin重復(fù)的問題。。。

好在查到了大佬的帖子,可以在配置文件找那個添加一段過濾配置

解決重復(fù)跨域問題,進(jìn)行header去重

spring:
  cloud:
    gateway:
      default-filters:
        - DedupeResponseHeader=Vary Access-Control-Allow-Credentials Access-Control-Allow-Origin, RETAIN_UNIQUE
        - DedupeResponseHeader=Access-Control-Allow-Origin, RETAIN_FIRST

原帖鏈接

至于帖子中寫的解決cookie跨域問題,,,我試了,似乎沒有效果,一樣報跨域錯誤,于是我在配置類嘗試著找相關(guān)方法,還真有!

只需要在配置類里添加以一段設(shè)置cookie允許跨域的配置(已經(jīng)在上面的配置方法里補(bǔ)充了cookie跨域代碼)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java包含抽象方法的枚舉類示例

    Java包含抽象方法的枚舉類示例

    這篇文章主要介紹了Java包含抽象方法的枚舉類,結(jié)合實(shí)例形式分析了Java包含抽象方法的枚舉類實(shí)現(xiàn)方法與相關(guān)操作技巧,需要的朋友可以參考下
    2019-08-08
  • Java根據(jù)ip地址獲取歸屬地實(shí)例詳解

    Java根據(jù)ip地址獲取歸屬地實(shí)例詳解

    這篇文章主要為大家介紹了Java根據(jù)ip地址獲取歸屬地實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Java如何在List或Map遍歷過程中刪除元素

    Java如何在List或Map遍歷過程中刪除元素

    相信大家在日常的開發(fā)過程中,經(jīng)常需要對List或Map里面的符合某種業(yè)務(wù)的數(shù)據(jù)進(jìn)行刪除,但是如果不了解里面的機(jī)制就容易掉入“陷阱”導(dǎo)致遺漏或者程序異常。下面這篇文章將會給大家詳細(xì)介紹Java如何在List和Map遍歷過程中刪除元素,有需要的朋友們可以參考借鑒。
    2016-12-12
  • 解決Maven本地倉庫明明有對應(yīng)的jar包但還是報找不到的問題

    解決Maven本地倉庫明明有對應(yīng)的jar包但還是報找不到的問題

    這篇文章主要介紹了解決Maven本地倉庫明明有對應(yīng)的jar包但還是報找不到的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • java實(shí)現(xiàn)請求緩沖合并的示例代碼

    java實(shí)現(xiàn)請求緩沖合并的示例代碼

    我們對外提供了一個rest接口給第三方業(yè)務(wù)進(jìn)行調(diào)用,但是由于第三方框架限制,導(dǎo)致會發(fā)送大量相似無效請求,這篇文章主要介紹了java實(shí)現(xiàn)請求緩沖合并,需要的朋友可以參考下
    2024-04-04
  • Lambda表達(dá)式下訪問外部變量問題

    Lambda表達(dá)式下訪問外部變量問題

    這篇文章主要介紹了Lambda表達(dá)式下訪問外部變量問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 解析Java編程中設(shè)計模式的開閉原則的運(yùn)用

    解析Java編程中設(shè)計模式的開閉原則的運(yùn)用

    這篇文章主要介紹了解析Java編程中設(shè)計模式的開閉原則的運(yùn)用,開閉原則多應(yīng)用于Java程序的擴(kuò)展開發(fā)方面,需要的朋友可以參考下
    2016-02-02
  • JPA+Enum枚舉實(shí)現(xiàn)步驟流程

    JPA+Enum枚舉實(shí)現(xiàn)步驟流程

    本文介紹了如何在Java中創(chuàng)建學(xué)生實(shí)體類及Sex枚舉類,并通過@JsonValue注解實(shí)現(xiàn)枚舉序列化,使用JPA的@Converter及AttributeConverter完成枚舉與數(shù)據(jù)庫字段的轉(zhuǎn)換,最后通過controller層進(jìn)行新增與查詢測試
    2025-10-10
  • Java編程思想對象的容納實(shí)例詳解

    Java編程思想對象的容納實(shí)例詳解

    這篇文章主要介紹了Java編程思想對象的容納實(shí)例詳解,內(nèi)容比較詳細(xì),涵蓋的東西也比較多,具有參考價值,需要的朋友了解下。
    2017-09-09
  • 使用DevOps開源利器開發(fā)部署Hygieia平臺

    使用DevOps開源利器開發(fā)部署Hygieia平臺

    這篇文章主要為大家介紹了使用DevOps開源利器開發(fā)部署Hygieia平臺的實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職?加薪
    2022-03-03

最新評論

阜新市| 巢湖市| 托克逊县| 鄢陵县| 洞头县| 渝中区| 婺源县| 汉寿县| 万山特区| 黄浦区| 鹤峰县| 通道| 望江县| 吉安县| 宁都县| 易门县| 武安市| 康乐县| 井研县| 特克斯县| 广丰县| 西乌珠穆沁旗| 深水埗区| 本溪| 正蓝旗| 江华| 巴青县| 濮阳县| 延寿县| 江孜县| 安图县| 凯里市| 冕宁县| 泰州市| 托克逊县| 万盛区| 辽中县| 龙州县| 高邮市| 金阳县| 社会|