Nginx 解决跨域问题

article/2025/9/20 0:00:16

什么是跨域

        当一个请求url的协议域名端口三者之间任意一个与当前页面url不同即为跨域 

 nginx解决跨域请求

nginx.config配置

server {listen       80;server_name  my.cn.com;location / {proxy_pass  http://test.cn.com:8081/test;index  index.html index.htm;}location /A {proxy_pass  http://a.a.com:8082/A;index  index.html index.htm;}location /B {proxy_pass  http://b.b.com:8083/B;ndex  index.html index.htm;}}

  •  当浏览器访问:my.cn.com:80        nginx会转发到  http://test.cn.com:8081/test;
  •  当浏览器访问:my.cn.com:80/A     nginx会转发到  http://a.a.com:8082/A;
  •  当浏览器访问:my.cn.com:80/B     nginx会转发到  http://b.b.com:8083/B;

这种nginx解决方案跟springCloud中的zuul(网关)一样。根据 location /***  转发至不同的请求去。

更多详细localtion的正则匹配规则可参考:nginx配置location总结及rewrite规则写法

网上还有另外一种nginx解决跨域请求的方案:   

此方案未验证。。。。。

在nginx.conf中启用COSR的参考配置:

#
# Wide-open CORS config for nginx
#
location / {if ($request_method = 'OPTIONS') {add_header 'Access-Control-Allow-Origin' '*';add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';## Custom headers and headers various browsers *should* be OK with but aren't#add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';## Tell client that this pre-flight info is valid for 20 days#add_header 'Access-Control-Max-Age' 1728000;add_header 'Content-Type' 'text/plain charset=UTF-8';add_header 'Content-Length' 0;return 204;}if ($request_method = 'POST') {add_header 'Access-Control-Allow-Origin' '*';add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';}if ($request_method = 'GET') {add_header 'Access-Control-Allow-Origin' '*';add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';}
}

这样就可以实现GET,POST,OPTIONS的跨域请求的支持
也可以 add_header Access-Control-Allow-Origin http://test.51testing.com; --指定允许的url;

其余解决跨域问题的手段有:

  1. jsonp
  2. httpclient进行请求内部转发
  3. 使用http响应头允许跨域设置
  4. 使用网管zuul


http://chatgpt.dhexx.cn/article/oIeoX0KF.shtml

相关文章

js解决跨域问题

📗目录 一、同源策略 二、什么是跨域 三、解决跨域 1.Jsonp实现跨域 2.代理的方式 3.CORS 🍊一、同源策略 所谓同源策略,就是指两个页面具有相同的协议,主机(也常说域名),端口&#xff…

Nginx 轻松解决跨域问题

当你遇到跨域问题,不要立刻就选择复制去尝试。请详细看完这篇文章再处理 。我相信它能帮到你。 # 分析前准备: 前端网站地址:http://localhost:8080 服务端网址:http://localhost:59200 首先保证服务端是没有处理跨域的&#…

后端解决跨域问题

前言: 今天前端给我发了一个截图, 当时就蒙了, 这个是啥子问题 跨域了, 叫我解决一下跨域的问题! 这个主要是浏览的约定! 前端调用的后端接口不属于同一个域(域名或端口不同),就会产生跨域问题,也就是说你的应用访问了该应用域名…

宝塔面板网站解决跨域问题

宝塔面板网站解决跨域问题解决方案如下 1.如果使用的nginx 打开网站的设置,找到配置文件,添加如下代码 代码如下: add_header Access-Control-Allow-Origin *;add_header Access-Control-Allow-Credentials true;add_header Access-Control-…

gin解决跨域问题

为什么会出现跨域问题 再非简单请求且跨域的情况下,浏览器会发送OPTIONS预检请求. Preflighted Requests是CORS中一种透明服务器验证机制.预检请求首先需要向另外一个域名的资源发送一个HTTP OPTIONS请求头,其目的就是为了判断实际发送的请求是安全的. 简单请求 简单请求需满…

nginx解决跨域问题

在我们前端开发的过程中, 相信大家都遇到过一个让人头疼的问题,那就是跨域问题. 跨域解决的方式有很多,这里主要讲的是如何来使用 nginx来解决我们所遇到的跨域问题 首先,在我们开始之前,首先要知道跨域是如何产生的: 协议 ip 端口号 这三者有任何一个不同,就会产生跨域问题 了…

Axios解决跨域问题

什么是跨域 首先需要了解到浏览器的同源策略,同源策略是最核心也是最基本的安全功能,缺少同源策略浏览器的正常功能可能会受到影响。同源策略会阻止一个域的javascript脚本和另外一个域的能容进行交互。同源(即指在同一个域)就是两…

跨域问题的4种解决方案

更多内容,请访问我的 个人博客。 前言 难以置信,我居然被跨域问题折磨了一上午。相信很多程序员都遇到过跨域问题,当然,解决方案也有很多种。但我今天尝试了无数种办法,依旧没有解决。直到最后我媳妇儿给了我个提示&a…

跨域问题常用的三种解决方式

一、什么是跨域?跨域是如何产生的? 同源策略: 浏览器内置的规则!是浏览器提供的一种安全机制,限制来自不同源的数据。如果当前页面的URL地址和Ajax的请求地址不同源,浏览器不允许得到服务器的数据; 同源: 协议 http||https、域…

完全二叉树的节点数

目录 Leecode.222完全二叉树的节点数思路分析层序遍历_迭代递归_二叉树的遍历迭代_二叉树的遍历 Leecode.222完全二叉树的节点数 给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。 完全二叉树 的定义如下:在完全二叉树中,除了最底…

完全二叉树的节点个数

给你一棵完全二叉树的根节点root,求出该树的节点个数。 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没有填满之外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底…

对二叉树、节点、度之间关系的思考(附图)

二叉树 节点 二叉树中每个元素都称为节点。 度 度的定义:节点所拥有的子树的数目称为该节点的度注意: 叶子节点的度为0 二叉树的度表示节点的子树或直接继承者的数目,二叉树的度是一个子树或单子树。2度是两个孩子,或者左和右…

【二叉树】二叉树中第二小的节点

0x00 题目 给定一个非空特殊的二叉树,每个节点都是 正数 并且每个节点的子节点数量只能为 2 或 0 如果一个节点有两个子节点的话 那么该节点的值等于两个子节点中 较小 的一个 更正式地说, root.val min(root.left.val, root.right.val) 总成立 给出…

求二叉树节点的路径

题目:求二叉树节点的路径 【问题描述】 建立一棵二叉树,编程实现求从根结点到给定结点之间的路径。 【基本要求】 建立一棵以二叉链表形式存储二叉树,以bt指向根结点,p指向任一给定的结点,编程实现“以字符形式输出…

二叉树(根节点到任意结点的路径)

假设二叉树采用二叉链表方式存储, root指向根结点,node 指向二叉树中的一个结点,编写函数 path,计算root到 node 之间的路径,(该路径包括root结点和 node 结点)。path 函数声明如下:…

计算机二叉树节点计算公式,二叉树节点数该怎么计算?有几种算法?

每一棵二叉树中都有左右两棵子树,子树中又有无数节点,那你们知道子树中的节点该怎么计算吗?快来跟小编了解一下吧。 二叉树算法概念 对于任何一棵二叉树来说,其叶子结点的数目为n0,且其度数为2的结点数n2,则n0n21. 证…

任意二叉树节点数、度数与叶子数的关系

二叉树的性质——节点数、度数、叶子节点数的关系 对于任意一棵二叉树,如果2度的节点数有n2个,则叶子数n0必定为n21(n0n21) (1) 我们假设有二叉树的枝有B个,如果从下往上思考,可以看做是每个节点都有一个枝与之对应&#xff0c…

二叉树的节点及树的创建

二叉树的基本概念 二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。 二叉树的性质(特性) 性质1:在二叉树的第i层上至多有 2&am…

二叉树的节点个数以及高度详解(附图解)

二叉树的节点个数以及高度 文章目录 二叉树的节点个数以及高度前言NO.1 定义链式二叉树NO.2 创建二叉树一、二叉树节点个数1.代码展示2.递归图解 二、二叉树叶子节点个数1.代码展示2.递归图解 三、二叉树第k层节点个数1.代码展示2.递归图解 四、二叉树高度和深度1.代码展示2.递…

二叉树根节点到指定节点的路径

题目描述:给定一棵二叉树和二叉树中一个节点,输出根节点到指定节点间的路径。 10     / \     5 12     / \    4 7 指定节点7,那么输出路径应该是10-5-7。 分析与解法: 这个题目是在我做…