微服务框架 SpringCloud微服务架构 8 Gateway 网关 8.7 网关的cors 跨域配置

news2025/2/21 20:58:40

微服务框架

【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】

SpringCloud微服务架构

文章目录

      • 微服务框架
      • SpringCloud微服务架构
      • 8 Gateway 网关
        • 8.7 网关的cors 跨域配置
          • 8.7.1 跨域问题处理
          • 8.7.2 案例
          • 8.7.3 总结

8 Gateway 网关

8.7 网关的cors 跨域配置

8.7.1 跨域问题处理

【什么是跨域?】

跨域:域名不一致就是跨域,主要包括:

  • 域名不同: www.taobao.com 和 www.taobao.org 和 www.jd.com 和 miaosha.jd.com
  • 域名相同,端口不同:localhost:8080和localhost8081

跨域问题:浏览器禁止请求的发起者与服务端发生跨域ajax请求,请求被浏览器拦截的问题【这也是我们自己的两个userservice 8081 和 8082 不会产生这种问题的原因】

解决方案:CORS

网关处理跨域采用的同样是CORS方案,并且只需要简单配置即可实现:

在这里插入图片描述

8.7.2 案例

一个简单的页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
<pre>
spring:
  cloud:
    gateway:
      globalcors: # 全局的跨域处理
        add-to-simple-url-handler-mapping: true # 解决options请求被拦截问题
        corsConfigurations:
          '[/**]':
            allowedOrigins: # 允许哪些网站的跨域请求
              - "http://localhost:8090"
              - "http://www.leyou.com"
            allowedMethods: # 允许的跨域ajax的请求方式
              - "GET"
              - "POST"
              - "DELETE"
              - "PUT"
              - "OPTIONS"
            allowedHeaders: "*" # 允许在请求中携带的头信息
            allowCredentials: true # 是否允许携带cookie
            maxAge: 360000 # 这次跨域检测的有效期
</pre>
</body>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script>
  axios.get("http://localhost:10010/user/1?authorization=admin")
  .then(resp => console.log(resp.data))
  .catch(err => console.log(err))
</script>
</html>

它里面最主要的就是通过axios 发起了一个get 请求,地址就是我们的网关地址,查询id 为 1的用户,且过滤器可以通过

先装一个live-server ,这就涉及到Node.js 的东西了,使用命令全局安装

npm i -g live-server

在这里插入图片描述

OK, 直接把那个文件跑起来

在这里插入图片描述

live-server --port=8090

在这里插入图片描述

OK

直接F12 看看控制台

在这里插入图片描述

这就是跨域了【因为我现在启动是8090,而请求地址是 10010】

直接复制这段配置

在这里插入图片描述

在这里插入图片描述

现在的网关服务配置文件

server:
  port: 10010

spring:
  application:
    name: gateway

  cloud:
    nacos:
      server-addr: localhost:8848  # nacos地址
    gateway:
      routes:
        - id: user-service # 路由标识,必须唯一
          uri: lb://userservice # 路由的目标地址
          predicates: # 路由断言,判断请求是否符合规则
            - Path=/user/**  # 路径断言,判断路径是否以/user 开头,如果是则符合规则
#          filters:
#            - AddRequestHeader=Truth, Itcast is freaking awesome! # 添加请求头
        - id: order-service
          uri: lb://orderservice
          predicates:
            - Path=/order/**
      default-filters:
        - AddRequestHeader=Truth, Itcast is freaking awesome! # 添加请求头

      globalcors: # 全局的跨域处理
        add-to-simple-url-handler-mapping: true # 解决options请求被拦截问题
        corsConfigurations:
          '[/**]':
            allowedOrigins: # 允许哪些网站的跨域请求
              - "http://localhost:8090"
              - "http://www.leyou.com"
            allowedMethods: # 允许的跨域ajax的请求方式
              - "GET"
              - "POST"
              - "DELETE"
              - "PUT"
              - "OPTIONS"
            allowedHeaders: "*" # 允许在请求中携带的头信息
            allowCredentials: true # 是否允许携带cookie
            maxAge: 360000 # 这次跨域检测的有效期

OK,重启网关服务

在这里插入图片描述

直接刷新一下刚刚的页面

在这里插入图片描述

没毛病,数据拿到了

牛逼!!!!

8.7.3 总结

CORS跨域要配置的参数包括哪几个?

  • 允许哪些域名跨域?
  • 允许哪些请求头?
  • 允许哪些请求方式?
  • 是否允许使用cookie?
  • 有效期是多久?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/53948.html

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

相关文章

深入讲解Netty那些事儿之从内核角度看IO模型(下)

接上文深入讲解Netty那些事儿之从内核角度看IO模型&#xff08;上&#xff09; epoll 通过上边对select,poll核心原理的介绍&#xff0c;我们看到select,poll的性能瓶颈主要体现在下面三个地方&#xff1a; 因为内核不会保存我们要监听的socket集合&#xff0c;所以在每次调用…

最全面的Spring教程(六)——WebSocket

前言 本文为 【SpringMVC教程】WebSocket 相关知识介绍&#xff0c;具体将对WebSocket进行简介&#xff0c;并通过实战案例对WebSocket的使用进行详尽介绍~ &#x1f4cc;博主主页&#xff1a;小新要变强 的主页 &#x1f449;Java全栈学习路线可参考&#xff1a;【Java全栈学…

SpringBoot接口 - 如何优雅的写Controller并统一异常处理?

内容目录 为什么要优雅的处理异常 实现案例ControllerAdvice异常统一处理Controller接口运行测试 进一步理解ControllerAdvice还可以怎么用&#xff1f;ControllerAdvice是如何起作用的&#xff08;原理&#xff09;&#xff1f; 示例源码 更多内容 SpringBoot接口如何对异…

【Pygame实战】代码版《舞动青春*炫舞》能否引领音舞游戏再一次爆发?“你还记得最浪漫的舞蹈游戏炫舞吗?”

导语 Hello&#xff0c;大家好呀&#xff01;我是木木子吖&#xff5e; 一个集美貌幽默风趣善良可爱并努力码代码的程序媛一枚。 听说关注我的人会一夜暴富发大财哦~ &#xff08;哇哇哇 这真的爱&#x1f60d;&#x1f60d;&#xff09; 所有文章完整的素材源码都在&#…

GIS工具maptalks开发手册(二)01-11——渲染文字及参数注释

GIS工具maptalks开发手册(二)01-11——渲染文字及参数注释 效果 代码 index.html <!DOCTYPE html> <html> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1"> <title>…

E. Gardener and Tree(拓扑排序)

Problem - 1593E - Codeforces 树是一个无定向的连接图&#xff0c;其中没有循环。这个问题是关于无根的树。一棵树的叶子是一个顶点&#xff0c;它最多与一个顶点相连。 园丁维塔利用n个顶点种了一棵树。他决定对这棵树进行修剪。为了做到这一点&#xff0c;他进行了一些操作…

云原生应用的最小特权原则

IDC 预计&#xff0c;从现在到 2024 年初&#xff0c;将开发和部署 5 亿个新应用程序——超过过去 40 年的总和。 Gartner 预测&#xff0c;到 2025 年&#xff0c;75% 的企业将运行某种容器化应用程序。 现代应用程序需要现代安全性。 公共云供应商非常积极地提升平台安全性&…

JAVA培训之连接查询之子查询

子查询就是嵌套查询&#xff0c;即SELECT语句中包含SELECT语句&#xff0c;如果一条语句中存在两个&#xff0c;或两个以上SELECT&#xff0c;那么就是子查询语句了。 子查询出现的位置&#xff1a; Where子句中&#xff0c;作为条件存在&#xff1b;from后&#xff0c;作为表…

Bootstrap学习(十一)

模态框使用&#xff1a; tab标签页组件 模态框使用&#xff1a; 有属性、方法、事件 fade显示时的渐变动画可加可不加&#xff0c;role是屏幕辅助设备用的 aria-lable屏幕辅助设备用的 静态的模态框是不展示的&#xff0c;需要调用展示方法才能展示 在中心内容放一个表单&…

Transformer Encoder-Decoer 结构回顾

有关于Transformer、BERT及其各种变体的详细介绍请参照笔者另一篇博客&#xff1a;最火的几个全网络预训练模型梳理整合&#xff08;BERT、ALBERT、XLNet详解&#xff09;。 本文基于对T5一文的理解&#xff0c;再重新回顾一下有关于auto-encoder、auto-regressive等常见概念&…

Elasticsearch 安装及启动【Windows】

一、下载 Elasticsearch 官网下载地址&#xff1a;https://www.elastic.co/cn/downloads/past-releases#elasticsearch 选择自己所需版本进行下载&#xff0c;这里以Elasticsearch 8.2.2 为例 点击 Download&#xff0c;选择 Windows 版本 二、使用步骤 1.安装 Elasticse…

大数据培训课程WordCount案例实操

WordCount案例实操 1&#xff0e;需求 在给定的文本文件中统计输出每一个单词出现的总次数 &#xff08;1&#xff09;输入数据 &#xff08;2&#xff09;期望输出数据 atguigu 2 banzhang 1 cls 2 hadoop 1 jiao 1 ss 2 xue 1 2&#xff0e;需求分析 …

如何看待越来越多人报名参加软考?

可以肯定的告诉你软考证书是有用的。 但是软考证书如果对于自己今后的职业生涯规划也有帮助&#xff0c;和你的职业发展和需求相匹配&#xff0c;那才能发挥软考证书最大的优势。 软考证书的用处体现在哪里&#xff1f; 1、证书认可度高 软考是一种简称&#xff0c;全称是计…

变分推断(Variational Inference)解析

一、什么是变分推断 假设在一个贝叶斯模型中&#xff0c;xxx为一组观测变量&#xff0c;zzz为一组隐变量&#xff08;参数也看做随机变量&#xff0c;包含在zzz中&#xff09;&#xff0c;则推断问题为计算后验概率密度P(z∣x)P(z|x)P(z∣x)。根据贝叶斯公式&#xff0c;有&am…

如何使用向导创建Openflow 流表-网络测试仪实操

使用向导创建Openflow中的FlowTable&#xff0c;按照下面的步骤&#xff1a; 1、打开Renix软件&#xff0c;连接机框并预约测试端口&#xff1b; 2、配置一个IPv4接口 3、配置一个OpenFlowController绑定步骤二中的IPv4接口 4、创建一条RAW流&#xff08;这条流中包含FlowTabl…

虹科QA | SWCF2022 11月29日演讲笔记:卫星传输链路中的关键技术分享

虹科2022年度SWCF卫星通信与仿真测试研讨会正在进行中。昨日精彩演讲&#xff1a;卫星传输链路中的关键技术分享&#xff0c;感谢大家的观看与支持&#xff01; 昨晚的直播间收到一些粉丝的技术问题&#xff0c;我们汇总了热点问题并请讲师详细解答&#xff0c;在此整理分享给…

2022年十一届认证杯(小美赛)C题思路新鲜出炉

对人类活动进行分类 人类行为理解的一个重要方面是对日常活动的识别和监控。一个可穿戴的活动识别 系统可以提高许多关键领域的生活质量&#xff0c;如动态监测、家庭康复和跌倒检测。基于 惯性传感器的活动识别系统用于监测和观察老年人远程个人报警系统[1]&#xff0c;检测和…

结合RocketMQ 源码,带你了解并发编程的三大神器

摘要&#xff1a;本文结合 RocketMQ 源码&#xff0c;分享并发编程三大神器的相关知识点。本文分享自华为云社区《读 RocketMQ 源码&#xff0c;学习并发编程三大神器》&#xff0c;作者&#xff1a;勇哥java实战分享。 这篇文章&#xff0c;笔者结合 RocketMQ 源码&#xff0…

WRF模式行业应用问题解析及辅助学习

>>> 高精度气象模拟软件WRF(Weather Research Forecasting)技术及案例应用 今天小编给大家整理了WRF模式行业应用问题解析&#xff0c;不管是正在应用WRF还是入门小白&#xff0c;都建议多听一些行业问题&#xff0c;借鉴及深入了解&#xff0c;以下摘抄了个别问题&a…

5. 线性回归的从零开始实现

1.生成数据集 # num_examples 表示样本数量&#xff0c;也就是房屋数量 # w是权重向量 def synthetic_data(w, b, num_examples): #save"""生成yXwb噪声"""# X是一个从独立的正态分布中抽取的随机数的张量&#xff0c;正态分布的平均值为0、标…