這篇文章主要介紹了SpringCloud Gateway跨域配置代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
創(chuàng)新互聯(lián)公司專注于東烏珠穆沁網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供東烏珠穆沁營(yíng)銷型網(wǎng)站建設(shè),東烏珠穆沁網(wǎng)站制作、東烏珠穆沁網(wǎng)頁設(shè)計(jì)、東烏珠穆沁網(wǎng)站官網(wǎng)定制、微信小程序開發(fā)服務(wù),打造東烏珠穆沁網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供東烏珠穆沁網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
Springboot版本:2.1.8.RELEASE
SpringCloud版本:Greenwich.SR2
yml配置:
spring: cloud: gateway: globalcors: cors-configurations: '[/**]': # 允許攜帶認(rèn)證信息 # 允許跨域的源(網(wǎng)站域名/ip),設(shè)置*為全部 # 允許跨域請(qǐng)求里的head字段,設(shè)置*為全部 # 允許跨域的method, 默認(rèn)為GET和OPTIONS,設(shè)置*為全部 # 跨域允許的有效期 allow-credentials: true allowed-origins: - "http://localhost:13009" - "http://localhost:13010" allowed-headers: "*" allowed-methods: - OPTIONS - GET - POST max-age: 3600 # 允許response的head信息 # 默認(rèn)僅允許如下6個(gè): # Cache-Control # Content-Language # Content-Type # Expires # Last-Modified # Pragma #exposed-headers:
配置類:org.springframework.cloud.gateway.config.GlobalCorsProperties
網(wǎng)上有很多人說這樣配無效,但我測(cè)試下來是OK的,如果真的無效,可以手動(dòng)去裝配Cros配置:
package com.longge.gateway.configuration; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.cloud.gateway.config.GlobalCorsProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.cors.reactive.CorsWebFilter; import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource; import org.springframework.web.util.pattern.PathPatternParser; /** * @author roger yang * @date 11/21/2019 */ @Configuration @ConditionalOnBean(GlobalCorsProperties.class) public class CorsAutoConfiguration { @Autowired private GlobalCorsProperties globalCorsProperties; @Bean public CorsWebFilter corsFilter() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser()); globalCorsProperties.getCorsConfigurations().forEach((path,corsConfiguration)->source.registerCorsConfiguration(path, corsConfiguration)); return new CorsWebFilter(source); } }
當(dāng)然,我們更推薦在Nginx等中間件去做跨域的處理,業(yè)務(wù)服務(wù)就應(yīng)該關(guān)注業(yè)務(wù)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。