前后端分离,解决Spring Cloud GateWay + Nacos使用lb请求报503错误以及403跨域问题
在使用前后端分离时,前端请求gateway接口,gateway使用lb负载均衡请求目标服务。
如下:
spring:cloud:gateway:routes:- id: test-demouri: lb://test-demopredicates:- Path=/test/**filters:- RewritePath=/test/(?<segment>.*),/test-demo/$\{segment}
前端请求接口报如下错误:
或
最开始以为仅仅只是跨域问题,尝试了以下方法:
方式一:
在application.yml里配置:
spring:cloud:gateway:globalcors:cors-configurations:'[/**]':allowedOrigins: "*" #这里可以配置固定域名allowedMethods:- GET- POST
参考地址:Spring Cloud Gatewayhttps://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#cors-configuration
此方法似乎缺少什么,仍存在跨域问题,(知道结果的大佬望告知一二)
方式二:
添加配置类,配置跨域:
package com.example.gateway.config;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;@Configuration
public class ExampleCorsConfiguration {@Beanpublic CorsWebFilter corsWebFilter(){UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();CorsConfiguration corsConfiguration = new CorsConfiguration();//1.配置跨域corsConfiguration.addAllowedHeader("*");corsConfiguration.addAllowedMethod("*");corsConfiguration.addAllowedOriginPattern("*");corsConfiguration.setAllowCredentials(true);source.registerCorsConfiguration("/**", corsConfiguration);return new CorsWebFilter(source);}
}
配置了跨域仍未起效果,搜索文献,发现新版nacos弃用了Ribbon,所以需要添加loadbalancer依赖:
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-loadbalancer</artifactId><version>3.1.1</version>
</dependency>
更新依赖,并重启服务,
添加完后就可以正常访问了。
第一个报错应该是依赖问题,第二个报错是跨域问题。
总结:
1.加loadbalancer依赖
2.加跨域配置
3.方式一跨域配置仍存在问题,有知道问题出在哪里的大佬,望指导一二,谢谢。
网上有些资料太老了,与实际问题解决有些出入,调试半天也不起作用,吃一堑长一智。
前后端分离,解决Spring Cloud GateWay + Nacos使用lb请求报503错误以及403跨域问题相关推荐
- spring cloud gateway nacos搭建动态路由
spring cloud gateway nacos搭建动态路由 一.环境 开发工具:IntelliJ Idea JDK 1.8 Spring boot 2.3.12.RELEASE spring c ...
- 前后端分离 -- 深入浅出 Spring Boot + Vue + ElementUI 实现相册管理系统【文件上传 分页 】 文件上传也不过如此~
前后端分离 – 深入浅出系列 Spring Boot + Vue + ElementUI 实现相册管理系统[文件上传 分页 ] 文件上传也不过如此~ 引言 Hello,我是Bug终结者,一名热爱后端J ...
- Vue flask前后端分离解决跨域
Vue flask前后端分离解决跨域 安装axios 在项目目录下输入:npm install axios--save-dev 配置axios 在main.js中引入axios import axio ...
- Spring Boot 前后端分离解决跨越问题
一.起源 当我们在开发前后端分离项目的时候,出于安全原因,浏览器禁止Ajax调用驻留在当前原点之外的资源.跨源资源共享(CORS)是由大多数浏览器实现的W3C规范,允许您灵活地指定什么样的跨域请求被授 ...
- 自学前后端分离1 Spring Boot+Vue概述
一,前后端分离. 前后端分离时将一个应用的前端代码和后端代码分开写,如果不用前后端分离传统的JavaWeb开发中前端使用JSP开发,JSP不是由后端开发者来独立完成的前端--〉html静态页面---- ...
- spring cloud gateway+nacos 服务下线感知延迟,未及时出现503,请求依然转发到下线服务
spring cloud gateway服务下线感知延迟,未及时出现503 1.场景描述 2.分析 2.1定位问题 3.解决方案 本篇算是配合之前的一篇了.整体问题是gateway对下线服务感知延迟, ...
- spring cloud gateway nacos 网关设置
前期准备:可参考上一篇,spring cloud nacos 服务提供.服务消费(Feign.RestTemplate)及Hystrix熔断设置 1.下载安装 Nacos 服务中心(下载地址 http ...
- 跨域详解!前后端分离解决跨域问题
文章目录 一.为什么会出现跨域问题 二.什么是跨域 三.非同源限制 四.跨域问题的解决方式 Jsonp前后端配合 前端修改 后端修改 CORS 详解响应头 5. SpringBoot解决 [方式一]全 ...
- Spring Cloud Gateway——2020.x以上版本HTTP 503 或 NoLoadBalancer[负载均衡]解决方案
问题描述 config spring:cloud:gateway:routes:- id: myRouteuri: lb://servicepredicates:- Path=/service/** ...
最新文章
- 2017全球大数据产业八领域典型公司盘点分析
- Python笔记_第四篇_高阶编程_正则表达式_3.正则表达式深入
- java 大顶堆_107-大顶堆和小顶堆图解说明
- Java静态内部类、匿名内部类、成员式内部类和局部内部类
- 网页调用摄像头_【WebAR】虚拟现实来到网页——WebXR Device API第二部分
- [分际]如何使用EVENTLOG类操作日志
- 中断方式下进行串口通讯的正确方法
- android system.img编译,快速编译system.img和boot.img的方法
- HTTP协议从入门到大牛,初识HTTP协议(学习笔记)
- iteritems python3_python3 items() 与 python2 中iteritems()的区别
- 激活Windows10,激活软件被报出,软件存在威胁或者恶意程序?
- 微信小程序上传图片到服务器总是失败_微信小程序上传图片到服务器实例
- 融云即时通讯SDK集成 -- 华为推送的点击跳转处理
- 计算机毕业设计Spark+SpringBoot旅游推荐系统 旅游大数据分析大屏 旅游可视化 旅游路线规划系统 旅游推荐App小程序 旅游网站 自驾游路线规划系统 自驾游推荐系统 自驾游推荐App小程序
- c 语言编程字谜,字谜游戏(a)C语言
- 07169软件开发工具与环境考试大纲
- 信息安全产品体系的介绍
- 初探强化学习(14)DQN类算法的值高估问题的笔记
- HTML5期末大作业:网站——美丽家乡(武汉汉口)
- 2020 年我学习到的 20 条软件工程准则