当前位置: 首页 > news >正文

余江网站建设河南郑州百姓网

余江网站建设,河南郑州百姓网,网站开发首选语言,上海网站制作网络推广方法今天在修改天天生鲜超市项目的时候,因为使用了前后端分离模式,前端通过网关统一转发请求到后端服务,但是第一次使用就遇到了问题,比如跨域问题: 但是,其实网关里是有配置跨域的,只是忘了把前端项…

今天在修改天天生鲜超市项目的时候,因为使用了前后端分离模式,前端通过网关统一转发请求到后端服务,但是第一次使用就遇到了问题,比如跨域问题:

但是,其实网关里是有配置跨域的,只是忘了把前端项目的IP和端口号添加到设置里

server:port: 9091servlet:context-path: /spring:profiles:active: devcloud:gateway:enabled: true# 开启自动路由discovery:locator:enabled: trueroutes:# fresheveryday- id: gateway-fresheverydayuri: lb://fresheverydaypredicates:- Path=/api/fresheveryday/**filters:- StripPrefix=2httpclient:connect-timeout: 1000 # 配置连接超时response-timeout: 5s # 配置响应超时# 跨域配置globalcors:add-to-simple-url-handler-mapping: truecors-configurations:'[/**]': #拦截的请求maxAge: 36000 #跨域检测的有效期,单位sallowedOrigins: #允许跨域的请求- "http://localhost:8080" # mhxysy- "http://localhost:8081" # layui- "http://localhost:8099" # authorityallowedMethods: #允许跨域的请求方式- "GET"- "POST"allowedHeaders: "*" #允许请求中携带的头信息allowedCredentials: true #是否允许携带cookielogging:level:springfox: errorcn.edu.sgu.www.gateway: debug

如上所示,allowedOrigins里设置的是之前使用网关的服务,在nacos控制台修改gateway-dev.yml

添加超市前端项目ttsx的访问地址

server:port: 9091spring:application:name: gatewaycloud:# 网关配置gateway:enabled: true# 开启自动路由discovery:locator:enabled: trueroutes:# authority- id: gateway-authorityuri: lb://authoritypredicates:- Path=/api/authority/**filters:- StripPrefix=2# mhxysy- id: gateway-mhxysyuri: lb://mhxysypredicates:- Path=/api/mhxysy/**filters:- StripPrefix=2# layui- id: gateway-layuiuri: lb://layuipredicates:- Path=/api/layui/**filters:- StripPrefix=2# fresheveryday- id: gateway-fresheverydayuri: lb://fresheverydaypredicates:- Path=/api/fresheveryday/**filters:- StripPrefix=2httpclient:connect-timeout: 1000 # 配置连接超时response-timeout: 5s # 配置响应超时# 跨域配置globalcors:add-to-simple-url-handler-mapping: truecors-configurations:'[/**]': #拦截的请求maxAge: 36000 #跨域检测的有效期,单位sallowedOrigins: #允许跨域的请求- "http://localhost:8080" # mhxysy- "http://localhost:8081" # layui- "http://localhost:8088" # ttsx- "http://localhost:8099" # authorityallowedMethods: #允许跨域的请求方式- "GET"- "POST"allowedHeaders: "*" #允许请求中携带的头信息allowedCredentials: true #是否允许携带cookielogging:file:name: D:/log/gateway.loglevel:springfox: errorcn.edu.sgu.www.gateway: debug

添加完之后,重启网关服务gateway,然后再次点登录按钮,还是报错了~

两次请求其实都正常返回响应数据了,状态码为200,这次的错误原因

Multiple CORS header 'Access-Control-Allow-Origin' not allowed

点击右边的问号,原因找到了,服务端返回了两个Access-Control-Allow-Origin响应头,因为网关配置了跨域,后台系统也配置了跨域,所以是gateway和fresheverday的响应头一起返回给了前端。

遇到这个问题应该怎么解决呢?

不要慌,有文档,gateway不是给我们提供了很多过滤器工厂吗,打开官网看一下。

因为博主用的springcloud版本为2.2.6.RELEASE,所以在Spring官网打开的spring cloud gateway的文档页面地址对应的版本处改成2.2.6.RELEASE。

https://docs.spring.io/spring-cloud-gateway/docs/2.2.6.RELEASE/reference/html/#the-deduperesponseheader-gatewayfilter-factory

然后看一下全局过滤器工厂,找到响应头相关的过滤器,如图,很快就找到一个

右边红框内的英文大概意思是会删除两个请求头Access-Control-Allow-CredentialsAccess-Control-Allow-Origin重复的值,一旦网关的cors和下游的cors策略都添加了它们。

看到这句英语原话,不由嘴角微动,就是它了,不费吹灰之力。

于是在网关的配置加上上面的配置

        # fresheveryday- id: gateway-fresheverydayuri: lb://fresheverydaypredicates:- Path=/api/fresheveryday/**filters:- StripPrefix=2- DedupeResponseHeader=Access-Control-Allow-Credentials Access-Control-Allow-Origin

重启一下网关服务gateway,点击登录成功跳转到了首页,问题完美解决~

好了,文章就分享到这里了~

http://www.dtcms.com/a/594255.html

相关文章:

  • 济南莱芜最新消息seo平台是什么意思
  • 银河麒麟高级服务器操作系统V10SP3 2403(X86)PXE服务端部署以及测试
  • 安徽建站优化哪里有八戒八戒在线观看免费完整版
  • 远距离视频传输无线模块:打破空间限制的未来科技
  • Linux网络编程—网络基础概念
  • 硬件基础知识-电容(一)
  • 做网站需要多少钱怎么做网站的百度收录
  • 什么软件可以做网站百度站长平台怎么验证网站
  • 网站建设定制网络营销方式哪些?
  • Python | range数据类型、for循环及应用方式
  • 怎么仿一个复杂的网站wordpress怎么写时间轴
  • HTML5 表单属性详解
  • 官网国产化改造,为何首选PageAdmin CMS?
  • 传感器监测精度:压电 / 温度传感器对心率 / 呼吸信号的捕捉效率测试
  • 十堰优化网站哪家好有免费做推广的网站吗
  • 网站空间如何续费南昌企业建站系统
  • 底层视觉及图像增强-项目实践(十六-0-(4):从“调屏经验”到“AI慧眼【神经网络、卷积】”的思维跃迁):从奥运大屏,到手机小屏,快来挖一挖里面都有什么
  • dede网站安全东莞金融网站建设
  • 网站页面设计尺寸彩云小梦ai写作网站
  • 培训考试系统源码重要吗
  • Swift-GCD和NSOperation
  • 移动硬盘安装Ubuntu系统——Ubuntu与Windows时间不一致(详细版)_002
  • 【计算思维】蓝桥杯STEMA 科技素养考试真题及解析 3
  • 昆明餐饮网站建设建设摩托车官网报价
  • 深圳公司建站推广保定市城乡建设局官方网站
  • 介绍 一下 DINOV2 骨干网络
  • 算法的初步认识
  • 库尔勒网站商城建设广告联盟赚钱app
  • nginx屏蔽指定js文件的访问
  • 无锡网站排名系统如何建设网站子页