nginx开启http2导致的服务验证码不可用问题

news2024/12/23 6:10:42

问题描述:

新搭建了一套开源的系统。通过nginx做了https反向代理后无法显示验证码。
请添加图片描述
具体报错: Uncaught TypeError: Cannot read properties of null (reading ‘property’)
点击报错后跳转到方法: xhr.getAllResponseHeaders()
问题就出在这个方法,但不知识具体原因。

通过做实验方法排除。

新搭建一个nginx只配置一个域名。发现同样的配置又能正常访问。
通过正常请求和异常请求的nginx日志分析,发现异常请求时使用的HTTP/2.0协议。
多次验证后在新环境配置上加了http2协议支持后问题复现。
最后得到结论是nginx开启了http2协议问题导致。

反找问题根源

1、因服务器有多个站点,一个站点开通了http2所有站点默认都开启http2。所以相同的配置在只有一个站点的服务器上访问没有问题。多站点上就出现了问题。
参考:Nginx 设置http1.1和http2

2、再用关键字搜索: http2 xhr.getAllResponseHeaders()
找到: XHR.getAllResponseHeaders() does not return headers as expected in Chrome 60
又通过上面的回复找到: Web compat implications of making getAllResponseHeaders lowercase

最终得到结论:

When reading the specification I can’t see any place saying that getAllResponseHeaders() must returns header names in lower case, furthermore since HTTP2 servers must return header in lower case getAllResponseHeaders() will return header in lower case for this specific protocol.

在阅读规范时,我看不到任何地方说getAllResponseHeaders()必须以小写形式返回标头名称,此外,由于HTTP2服务器必须以小写形式返回标头getAllResponseHeaders()将返回此特定协议的小写标头。

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

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

相关文章

leetcode 206.反转链表

⭐️ 往期相关文章 ✨链接:数据结构-手撕单链表代码详解。 ⭐️ 题目描述 🌟 leetcode链接:反转链表 1️⃣ 代码: /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* }…

html中input属性设置(合集)

html中input标签是常见的一个标签&#xff0c;下面由学习啦小编为大家整理了html中的input属性设置的相关知识&#xff0c;希望对大家有帮助! html中input属性设置总结 1、value 属性 value 属性规定输入字段的初始值&#xff1a; 实例 <form action""> F…

Day9操作系统基础——linux

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 linuxSSH黑客常用命令重难点 linux SSH 黑客常用命令 重难点 linux的相关操作指令

即时抽奖,即时开奖,技术上如何实现?(原来抽奖类的运营活动背后都是这么搞的)...

回答知识星球水友“self”提问。 需求抽象一下&#xff1a; &#xff08;1&#xff09;前100个人有资格&#xff0c;假设抽出N5个奖品&#xff1b; &#xff08;2&#xff09;报名就出奖&#xff0c;不用等100人到齐&#xff1b; &#xff08;3&#xff09;每个人概率一样&…

window debug ios webview

业务需求 在window上想要debug在ios的应用中的webview页面&#xff0c;毕竟页面是在安卓端和ios端都有webview的。安卓的页面使用edge的edge://inspect/#devices&#xff0c;手机开启调试模式就可以了。对于ios就没有办法&#xff0c;页面中已经使用了vconsole可以看到部分的信…

融云观察:社交大佬发家史,模仿才是终极成功学密码?

上周&#xff0c;多所高校因微信支付将收取手续费宣布暂停使用&#xff0c;微信致歉并称在校园非盈利场景将持续保持零费率。关注【融云全球互联网通信云】了解更多 微信的回应非常迅速&#xff0c;但还是多次冲上了热搜榜&#xff0c;可见对一个用户量超过 12 亿的社交巨头来…

fiddler弱网测试 和 Chrome浏览器弱网设置

文章目录 前言 一、fiddler弱网测试 二、Chrome浏览器弱网测试 步骤1&#xff1a;在Fiddler中启动弱网 步骤2&#xff1a;设置网络参数 步骤3&#xff1a;设置完成后&#xff0c;保存 三、弱网测试关注点 总结 前言 测试APP、web经常需要用到弱网测试&#xff0c;也就是…

2023年5月PETS5(WSK)考试经验分享

由于本人明年打算出国联培的缘故&#xff0c;CSC国家留学基金委需要申请人的语言成绩达到一定的要求 英语&#xff08;PETS5&#xff09;&#xff1a;笔试总分55分&#xff08;含&#xff09;以上&#xff0c;其中听力部分18分&#xff08;含&#xff09;以上&#xff0c;口试…

PyQt中资源文件的使用(详细步骤介绍)

新建文件&#xff1a; 在 Qt Creator&#xff0c;选中菜单 File->New File...&#xff0c;选择新建 Qt Resource File。 命名为res.qrc 在项目文件目录树中&#xff0c;会自动出现 Resources 文件组和 res.qrc 文件 添加资源记录&#xff1a; 在文件 res.qrc 上点击右键&a…

靶场DVWA未授权访问导致的RCE

1漏洞地址&#xff1a; http://xxxx.vom/vulnerabilities/exec/source/low.php 2漏洞原因&#xff1a; 命令执行直接拼接 3漏洞验证 linux写入phpinfo(); 到hackable/uploads/目录&#xff08;也可以直接写在当前目录&#xff09; 明文内容&#xff1a; 1&echo “<…

LeViT-UNet:transformer 编码器和CNN解码器的有效整合

levi - unet[2]是一种新的医学图像分割架构&#xff0c;它使用transformer 作为编码器&#xff0c;这使得它能够更有效地学习远程依赖关系。levi - unet[2]比传统的U-Nets更快&#xff0c;同时仍然实现了最先进的分割性能。 levi - unet[2]在几个具有挑战性的医学图像分割基准…

如何删除Linux下乱码文件

第一、使用 ls -i 命令获取文件的节点&#xff0c;如下图所示 第二、执行 find -inum 节点号 -delete 命令 删除成功。红色得就是节点号。

stm32烧录hal库固件后keil检测不到芯片,无法下载,但是按着复位键能下载和检测到芯片

keil检测不到芯片的原因有很多&#xff0c;我的原因是没有在stm32cubemx中配置下载方式 请检查stm32cubemx是否配置下载方式&#xff0c;我这里使用jlink的SWD模式进行下载&#xff0c;所以配置如下&#xff1a; 配置好后重新下载代码就可以检测到芯片了

浅析JS中变量前面的加号 + 的含义

javascript 中经常会看到在变量前面有个加号 &#xff0c;它有什么用处呢&#xff1f;其实很简单&#xff0c;就是把变量转换成 number 类型&#xff08;另外&#xff0c;变量 - 0 也是把变量的值转为数值的一种写法&#xff09;。话不多说&#xff0c;我们先看下面的几个例子…

MySQL数据库汇总

MySQL数据库必须掌握的知识点汇总 文章目录 1、三大范式2、DML 语句和 DDL 语句区别3、主键和外键的区别4、drop、delete、truncate 区别5、基础架构6、MyISAM 和 InnoDB 有什么区别&#xff1f;7、推荐自增id作为主键问题8、为什么 MySQL 的自增主键不连续9、redo log 是做什么…

Android Binder通信原理(八):IPC权限控制

源码基于&#xff1a;Android R 0. 前言 在之前的几篇博文中&#xff0c;对Android binder 的通信原理进行的深入的剖析&#xff0c;这些博文包括&#xff1a;binder 简介、servicemanager启动、service注册、service获取、Java 端的service 注册和获取、native下的C-S、java …

《QDebug 2023年6月》

一、Qt Widgets 问题交流 二、Qt Quick 问题交流 1.Qt5 的 QML Settings 没有设置编码的接口 Qt6 虽然移除了 QSettings 的 setIniCodec 接口&#xff0c;默认为 utf8&#xff0c;但是 Qt5 这个接口还能用&#xff0c;且没有默认 utf8。这就导致用 Qt5 QML 的 Settings 没法…

MAYA传送带上放石头(新旧粒子系统)

播放试试 使用老的粒子系统 particleShape1.shuliangrand(0,5); particleShape1.daxiao<<rand(0.2,0.5),rand(0.2,0.5),rand(0.2,0.5)>>; particleShape1.xuanzhuan<<rand(360),rand(360),rand(360)>>; 使用新的粒子系统 粒子向后滑落 新粒子系统能进行…

桥梁结构健康监测方案

一、方案背景 随着国民经济的快速发展&#xff0c;我国的基础设施建设得到蓬勃发展。桥梁作为国民生命财产安全的生命线&#xff0c;关系到国民经济和人民生活的可持续发展。在桥梁的长期运营过程中&#xff0c;存在施工缺陷、材料老化、自然环境以及荷载作用等原因造成桥梁结…

【Vue3】学习笔记-shallowReactive与ShallowRef

shallowReactive&#xff1a;只处理对象最外层属性的响应式&#xff08;浅响应式&#xff09;。 shallowRef&#xff1a;只处理基本数据类型的响应式, 不进行对象的响应式处理。 什么时候使用? 如果有一个对象数据&#xff0c;结构比较深, 但变化时只是外层属性变化 > sh…