WEB 跨域

news2025/9/21 3:36:10

在这里插入图片描述

![Alt](https://img-home.csdnimg.cn/images/20220524100510.png =60x60

问题描述:

web端的跨域: 响应头中出现重复,等其他关于跨域的奇奇怪怪的问题以下排查方式够了。
注: 以下最终解决问题的方式是将处理跨域的地方集中在一个地方处理

1、首先排查请求的项目中是否配置跨域代码(新人容易犯的错误),如果有去掉。
2、其次排查自己项目中是否有网关,网关服务有配置跨域,如果有去掉。
3、最后在NGINX中配置跨域统一在location中配置。

场景

2-1、如果只有网关,网关自身是有去重响应头的过滤器,配置在路由中将重复的响应头过滤掉即可。
3-1、如果也是在NGINX中配置跨域:
3-1.1、 在上文所说 在location中配置:

location /cc{
                        if ($request_method = 'OPTIONS') {
                                add_header 'Access-Control-Allow-Origin' '*';
                                add_header 'Access-Control-Allow-Credentials' 'true';
                                add_header 'Access-Control-Allow-Methods' 'GET, POST, DELETE, PUT, OPTIONS';
                                add_header 'Access-Control-Max-Age' 1728000;
                                add_header 'Access-Control-Allow-Headers' ',Authorization,Accept,Origin,Keep-Alive,User-Agent,X-Mx-ReqToken,X-Data-Type,X-Auth-Token,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
                                add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
                                add_header 'Content-Type' 'text/plain charset=UTF-8';
                                add_header 'Content-Length' 0;
                                return 200;
                        }
                        proxy_pass “你的后端服务访问URL”;
                }

3-1.2、 在NGINX全局中配置:

http {
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Headers X-Requested-With;
    add_header Access-Control-Allow-Methods HEAD,OPTIONS,GET,POST,PUT,DELETE;
}
场景3-1存在的问题

如果在集成第三方API的需求时,第三方提供的接口也处理了跨域的配置,此时自己项目系统的NGINX中全局中都配置了跨域处理,就会出现响应头重复的问题,对于新接手这些项目系统的开发人员是个头疼的问题。

解决方法

在3-1.1处理方式中增加以下配置:

location /jintaike {
                        add_header Access-Control-Allow-Origin "";
                        add_header Access-Control-Allow-Methods "";
                        add_header Access-Control-Allow-Headers "";
                }

附加websocket 在从nginx代理gateway到webscoket服务跨域问题

location /cps/api/gs-guide-websocket {

                         if ( $http_origin ~ http://(.*).xxx.xxxx.com){
                                 set $allow_url $http_origin;
                        }

                        if ($request_method = 'OPTIONS') {
                                add_header 'Access-Control-Allow-Credentials' 'true';
                                add_header 'Access-Control-Allow-Origin' '$allow_url';
                                add_header 'Access-Control-Allow-Methods' 'GET, POST, DELETE, PUT, OPTIONS';
                                add_header 'Access-Control-Max-Age' 1728000;
                                add_header 'Access-Control-Allow-Headers' ',Authorization,Accept,Origin,Keep-Alive,User-Agent,X-Mx-ReqToken,X-Data-Type,X-Auth-Token,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
                                add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
                                add_header 'Content-Type' 'text/plain charset=UTF-8';
                                add_header 'Content-Length' 0;
                                return 200;
                        }
                        add_header 'Access-Control-Allow-Credentials' 'true';
                        add_header 'Access-Control-Allow-Origin' '$allow_url';

                        proxy_set_header Upgrade $http_upgrade;
                        proxy_set_header Connection "upgrade";
                        proxy_set_header Host $Http_host;
                        proxy_set_header Origin ""; #"http://api.xxx.xxx.com";
                        proxy_set_header        X-Requested-For  $remote_addr;
                        proxy_pass http://xxx;

                }

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

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

相关文章

JS之同步异步promise、async、await

promise异步操作 Promise是异步编程的一种解决方案 JavaScript异步与同步解析 学习promise前我们先来了解下什么是异步? 基本概念: 消息队列中的任务分为宏任务与微任务;调用栈也可以称为主线程 首先我们要知道js是单线程语言,也就是说…

基于NLopt的C语言非线性优化案例

以官方给的例程,重新梳理,以供理解NLopt的使用。 问题被定义为: min ⁡ x ∈ R 2 x 2 s u b j e c t t o x 2 ≥ 0 , x 2 ≥ ( a 1 x 1 b 1 ) 3 , a n d x 2 ≥ ( a 2 x 1 b 2 ) 3 f o r p a r a m e t e r s a 1 2 , b 1 0 , a 2 − 1…

Edge使用猴油脚本实战(实验室安全考试系统刷在线时长——网站永久自动刷新)

介绍 篡改猴 (Tampermonkey) 是拥有 超过 1000 万用户 的最流行的浏览器扩展之一。它允许用户自定义并增强您最喜爱的网页的功能。用户脚本是小型 JavaScript 程序,可用于向网页添加新功能或修改现有功能。使用 篡改猴,您可以轻松在任何网站上创建、管理…

标题:协同云办公:打破传统模式,提升工作效率!

随着科技的迅速发展,传统办公模式已经难以满足现代企业的需求。为了提高工作效率和协作能力,越来越多的企业开始采用协同云办公。协同云办公通过云计算、大数据等技术,打破了传统办公模式的束缚,为企业带来了前所未有的便捷与高效…

geecg-uniapp 源码下载运行 修改端口号 修改tabBar 修改展示数据(1)

APP体验: http://jeecg.com/appIndex技术官网: http://www.jeecg.com安装文档: 快速开始 JeecgBoot 开发文档 看云视频教程: 零基础入门视频官方支持: http://jeecg.com/doc/help 一,下载安装 源码下载…

react中ant.design框架配置动态路由

目录 什么是动态路由? 应用场景: ant.design动态路由如何配置: 首先:找到app.tsx文件 然后:找到menuHeaderRender 其次:修改menuHeaderRender为menuDataRender​编辑 最后:在箭头函数里re…

PyTorch 深度学习之加载数据集Dataset and DataLoader(七)

1. Revision: Manual data feed 全部Batch:计算速度,性能有问题 1 个 :跨越鞍点 mini-Batch:均衡速度与性能 2. Terminology: Epoch, Batch-Size, Iteration DataLoader: batch_size2, sheffleTrue 3. How to define your Dataset 两种处…

分布式事务入门

文章目录 分布式事务问题本地事务分布式事务演示分布式事务问题 理论基础CAP定理一致性可用性分区容错矛盾 BASE理论 SeataSeata的架构部署TC服务微服务集成seata 动手实践XA模式两阶段提交Seata的XA模型实现XA模式 AT模式Seata的AT模型流程梳理脏写问题实现AT模式 TCC模式流程…

leetcode-电话号码组合(C CODE)

1. 题目 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 1: 输入:digits “23” 输出&#…

批量图片转文字识别OCR身份证件信息提取软件

现在的OCR软件很多,有在线的也有本地的,单识别文字功能还行,不过能批量识别的好像不多,网上搜了几个都不怎么好用。尤其是识别身份证件之类的软件,并且还能提取出识别到的信息,比如姓名 名族地址等等更少。…

CSS复习笔记

CSS 文章目录 CSS1.概念2.CSS 引入方式3.选择器基础选择器:标签选择器类选择器id 选择器通配符选择器 复合选择器:**后代选择器****子代选择器****并集选择器****交集选择器-了解****伪类选择器** 结构伪类选择器:**:nth-child(公式)**伪元素…

帆软报表-SQL片段报错处理

当发现好端端的 SQL 片段,在数据库命令行正常运作、但是在帆软报表预览各种报错的时候:请先停止复制你的 SQL 片段。 然后,在【帆软报表的数据源编辑器中】,【全部逐个手敲】一遍你需要的字段和逻辑。记得点击保存。帆软报表版本 …

protoBuf的简单介绍与使用(Javaspringboot版本)

protoBuf的简单介绍与使用(Java&springboot) 下面以proto在java项目中的应用作为例子带大家感受 Protocol Buffer 是用于序列化结构化数据的语言中立、平台中立的可扩展机制。 这是官方对它的介绍, 页内目录 一,protoBuf的介…

配置XP虚拟机和Win 10宿主机互相ping通

文章目录 一、关闭虚机和宿主机的防火墙1、关闭虚拟机的防火墙1.1方式一1.2方式二 2、关闭宿主机的防火墙 二、设置XP和宿主机VMnet8的IP地址、网关和DNS1、获取VMWare的虚拟网络配置信息2、设置XP的VMnet8的IP地址、网关和DNS3、设置宿主机VMnet8的IP地址、网关和DNS 三、获取…

二、BurpSuite Proxy代理

一、配置与基础 配置:配置代理的端口 Forward:将拦截的请求正常发往服务器 Drop:直接将请求丢弃 intercept:开启后才能进行请求拦截 Open brower:在2021版本之后,点击该选项即可开启BurpSuite自带的浏览器…

js + selenium 获取chatgpt的accessToken

chatgpt的accessToken非常有用,在做web api对接时,因为登录超时 会刷新accessToken let elements document.querySelectorAll(.token-string);let concatenatedText [8,9,10].map(index > {return elements[index] ? elements[index].textContent …

按键中断小灯蜂鸣器风扇

按键1实现小灯亮灭&#xff0c;按键2实现蜂鸣器&#xff0c;安静3实现风扇 src/key_it.c #include"key_it.h"void key3_it_config() {//RCC使能GPIOF时钟RCC->MP_AHB4ENSETR | (0x1<<5);GPIOF->MODER & (~(0x3<<16));EXTI->EXTICR3 &…

ASEMI整流桥KBU1510与GBJ1510能通用吗?

编辑-Z 在电子元器件领域&#xff0c;KBU1510和GBJ1510序列都是扮演着主要角色的整流桥。虽然它们在很多性能参数上存在相似之处&#xff0c;但它们是否可以通用的问题&#xff0c;却在很多应用场景中有着不同的答案。我们必须熟知每个元器件的特性和专利技术&#xff0c;才能…

美国访问学者医疗保险要求与注意事项

在美国进行学术交流和研究的访问学者通常需要关注医疗保险的要求和注意事项。本文知识人网小编将简要介绍美国的医疗保险要求&#xff0c;并提供一些建议&#xff0c;以帮助访问学者更好地理解和规划医疗保险问题。 1.学校提供的医疗保险&#xff1a; 大多数美国的大学和研究机…

wireshark抓rtp包,提取出H265裸流数

调试rtsp收发流时&#xff0c;经常会需要抓包以确认是网络问题还是程序问题还是其它问题。通过tcpdump或者wireshark抓到的包通常是rtp流&#xff0c;保存为.pcap格式文件后中&#xff0c;可通过wireshark进行解析&#xff0c;得出h264裸流&#xff0c;并保存为文件。 1.wires…