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

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

但是,其实网关里是有配置跨域的,只是忘了把前端项目的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.mzph.cn/news/93202.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaSE | 初识Java(七) | 数组 (下)

Java 中提供了 java.util.Arrays 包 , 其中包含了一些操作数组的常用方法 代码实例: import java.util.Arrays int[] arr {1,2,3,4,5,6}; String newArr Arrays.toString(arr); System.out.println(newArr); // 执行结果 [1, 2, 3, 4, 5, 6] 数组拷贝 代码实例…

青云1000

青云1000帮助文档 注意事项!!!! type-c只用于数据传输不能供电DC供电和锂电池不能同时供电,会烧掉风扇正负级不要插反 账户密码 HwHiAiUser 密码Mind123 TypeC USB IP 192.168.2.2(由原来192.168.1.2改…

mongodb、mysql、redis 区别

MongoDB、MySQL 和 Redis 是三种不同的数据库管理系统,它们在数据存储、访问模型和使用场景方面有一些显著的区别。 1. 数据存储模型: MongoDB:MongoDB 是一种文档数据库,它使用 BSON(Binary JSON)格式来存储数据。数据以文档的形式组织,每个文档可以有不同的字段,文档…

VRRP配置案例(路由走向分析,端口切换)

以下配置图为例 PC1的配置 acsw下行为access口&#xff0c;上行为trunk口&#xff0c; 将g0/0/3划分到vlan100中 <Huawei>sys Enter system view, return user view with CtrlZ. [Huawei]sysname acsw [acsw] Sep 11 2023 18:15:48-08:00 acsw DS/4/DATASYNC_CFGCHANGE:O…

Python 无废话-基础知识元组Tuple详讲

“元组 Tuple”是一个有序、不可变的序列集合&#xff0c;元组的元素可以包含任意类型的数据&#xff0c;如整数、浮点数、字符串等&#xff0c;用()表示&#xff0c;如下示例&#xff1a; 元组特征 1) 元组中的各个元素&#xff0c;可以具有不相同的数据类型&#xff0c;如 T…

python使用mitmproxy和mitmdump抓包在手机上抓包(三)

现在手机的使用率远超过电脑&#xff0c;所以这篇记录用mitmproxy抓手机包&#xff0c;实现手机流量监控。 环境&#xff1a;win10 64位&#xff0c;Python 3.10.4&#xff0c;雷电模拟器4.0.78&#xff0c;android版本7.1.2&#xff08;设置-拉至最底部-关于平板电脑&#xf…

Grander因果检验(格兰杰)原理+操作+解释

笔记来源&#xff1a; 1.【传送门】 2.【传送门】 前沿原理介绍 Grander因果检验是一种分析时间序列数据因果关系的方法。 基本思想在于&#xff0c;在控制Y的滞后项 (过去值) 的情况下&#xff0c;如果X的滞后项仍然有助于解释Y的当期值的变动&#xff0c;则认为 X对 Y产生…

IDEA2023 常用配置(JDK/系统设置等常用配置)

目录 一、JDK及编译目录设置 1 项目的JDK设置 2 out目录和编译版本 二、相关详细设置 1 打开详细配置界面 1、显示工具栏 2、默认启动项目配置 3、取消自动更新 2 设置整体主题 1、选择主题 2、设置菜单和窗口字体和大小 3、设置IDEA背景图 3 设置编辑器主题样式…

Office 2021 小型企业版商用办公软件评测:提升工作效率与协作能力的专业利器

作为一名软件评测人员&#xff0c;我将为您带来一篇关于 Office 2021 小型企业版商用办公软件的评测文章。在这篇评测中&#xff0c;我将从实用性、使用场景、优点和缺点等多个方面对该软件进行客观分析&#xff0c;在专业角度为您揭示它的真正实力和潜力。 一、实用性&#xf…

家用无线路由器如何用网线桥接解决有些房间无线信号覆盖不好的问题(低成本)

环境 光猫ZXHN F6600U 水星MW325R 无线百兆路由器 100M宽带&#xff0c;2.4G无线网络 苹果手机 安卓平板电脑 三室一厅94平 问题描述 家用无线路由器如何用网线桥接解决有些房间无线信号不好问题低成本解决&#xff0c;无线覆盖和漫游 主路由器用的运营商的光猫自带无…

MATLAB算法实战应用案例精讲-【优化算法】抗冠状病毒优化算法(ACVO)(附MATLAB代码实现)

前言 (ACVO)算法是一种多智能体策略,其中每个智能体都是一个人,通过观察控制协议试图保持健康并减缓 COVID-19 的传播。该算法由三个主要步骤组成:社交距离、隔离和隔离。在社交距离阶段,算法试图保持人与人之间的安全物理距离并限制密切接触。在隔离阶段,算法隔离疑似…

Gorsonpy的计算器

Gorsonpy的计算器 0.页面及功能展示1. PSP表格2.解题思路描述3.设计实现过程4.程序性能改进5.异常处理6.单元测试展示7.心路历程和收获 这个作业属于哪个课程https://bbs.csdn.net/forums/ssynkqtd-05这个作业要求在哪里https://bbs.csdn.net/topics/617294583这个作业的目标完…

docker基础学习

1. 安装docker #安装 yum 源 docker wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo #安装 docker 此处安装的是18版本的&#xff0c;还有19,20等等更高版本 yum -y install docker-ce-18.06.1.ce-3.el7 #…

SVM(上):如何用一根棍子将蓝红两色球分开?

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据开发、数据分析等。 🐴欢迎小伙伴们点赞👍🏻、收藏⭐️、…

Config

title: “Config” createTime: 2022-01-04T17:12:4708:00 updateTime: 2022-01-04T17:12:4708:00 draft: false author: “name” tags: [“config”] categories: [“docker”] description: “docker run的相关配置文件” daemon.json {"api-cors-header":"…

软考 系统架构设计师系列知识点之软件架构风格(1)

这个十一注定是一个不能放松、保持“紧”的十一。由于报名了全国计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试&#xff0c;11月4号就要考试&#xff0c;因此8天长假绝不能荒废&#xff0c;必须要好好利用起来。现在将各个核心知识点一一进行提炼并做记录。 所…

〔024〕Stable Diffusion 之 模型训练 篇

✨ 目录 🎈 训练集准备🎈 训练集预处理🎈 数据清洗🎈 下载训练源码🎈 训练文件配置🎈 脚本运行🎈 实战测试🎈 训练集准备 声明: 该文中所涉及到的女神图片均来自于网络,仅用作技术教程演示,图片已码一般同一个训练集需要准备 20~40 张不同角度的照片,当然可…

《XSS-Labs》01. Level 1~10

XSS-Labs 索引Level-1题解 Level-2题解 Level-3题解总结 Level-4题解 Level-5题解总结 Level-6题解 Level-7题解 Level-8题解 Level-9题解 Level-10题解 靶场部署在 VMware - Win7。 靶场地址&#xff1a;https://github.com/do0dl3/xss-labs 只要手动注入恶意 JavaScript 脚本…

一文拿捏基于redis的分布式锁、lua、分布式性能提升

1.分布式锁 jdk的锁&#xff1a; 1、显示锁&#xff1a;Lock 2、隐式锁&#xff1a;synchronized 使用jdk锁保证线程的安全性要求&#xff1a;要求多个线程必须运行在同一个jvm中 但现在的系统基本都是分布式部署的&#xff0c;一个应用会被部署到多台服务器上&#xff0c;s…

Android 布局浅析

Android布局绘制流程: 从根节点 noodview 递归调用每一级子view 的 Mesure 进行测量 然后 从根节点 noodview 递归调用每一级子view 的 layout 方法,把测量过程得出的子view的位置和size进行传递给子view ,然后子view保存参数 测量是动态化,是需要根view和子view 首先nood…