tongweb 部署软航流版签一体化应用示例 提示跨域错误CORS ERROR

目录

问题现象与描述

解决办法

原理解析

什么是CORS

浏览器跨域请求限制

跨域问题解决方法

跨域请求流程

浏览器请求分类解析

http请求方法简介


问题现象与描述

重庆软航科技有限公司提供了一套针对针对word、excel等流式文件转换成PDF版式文件并进行版式文件在线签章的一个方案,给方案做了一个应用示例,该示例在完成流式文件转成PDF版式文件之后展示了一个在线阅读转换后PDF文件并在线签章的相关功能。

但是在tongweb上部署之后发现该示例完成word转PDF功能后的在线查看PDF时功能异常,浏览器中F12调试 发现状态信息不为200而是 CORS error,如下图所示:

该功能对应的请求 已配置请求头信息:Access-Control-Allow-Origin为*

查看详细的信息时发现:Referrer Policy为same-origin:

且 该应用在tomcat中 部署时并未出现此类异常,因此可以断定示例本身是没有问题的。

猜想可能是由于tongweb的配置影响了。

说一下示例所需要的资源部署情况:将其需要的软航电子签章系统、软航版式文档签批系统、软航文档转换系统以及软航提供的结合这几个一体化应用示例都部署到了同一台服务器的tongweb上了。

解决办法

打开tongweb 管理控制台,在【WEB容器配置】中选择【HTTP通道管理】选择【tong-http-listener】:

下拉到【其他设置】:

在其他设置这里有一个:禁用HTTP请求方法

将禁用的OPTIONS方法放开(勾选取消掉):

之后 重启tongweb ,再试就可以解决 CORS error 问题了。

原理解析

什么是CORS

CORS:即跨域(Cross-Origin Resource Sharing, CORS)是一种安全策略,由浏览器 enforced,限制跨域 HTTP 请求,指在一个域下的网页尝试访问另一个域下的资源。在web应用中服务器地址、端口、项目但凡有一个不同,访问的资源不是自己的,那就属于跨域。例如部署在A服务器上的appA项目,那么 在appA中访问 B服务器上的appB ,或者访问服务器A上的其他应用appx 都属于跨域。

跨域问题主要发生在浏览器端,服务器端由于协议设计的原因,不存在跨域问题。浏览器端跨域请求主要涉及到同源策略(Same-Origin Policy),同源策略限制了从一个源加载的文档或脚本与另一个源的资源进行交互。

浏览器跨域请求限制

浏览器默认是禁用跨域请求的,主要体现在以下方面:

(1)HTTP 请求方法:通常只允许 GET、POST 和 HEAD 请求。

(2)HTTP 头信息:无法发送 Cookie、HTTP 认证信息(如 Basic Auth)等。

(3)HTTP 响应:无法读取非简单响应内容,如 JSONP 只支持 JSON 格式。

跨域问题解决方法

(1)同源策略:通过 HTML5 的 window.postMessage 方法实现跨域通信。

(2)CORS:服务器设置 Access-Control-Allow-Origin 等响应头,允许特定域访问资源。

(3)JSONP:通过动态创建 script 标签,利用其不受同源策略限制的特性实现跨域请求。

(4)代理服务器:通过设置一个代理服务器,实现请求转发和响应返回。

跨域请求流程

(1)浏览器发送预检请求(Preflight Request):询问服务器是否允许该跨域请求。

(2)服务器响应预检请求:如果允许,返回相应的 CORS 响应头。

(3)浏览器发送实际请求:携带 CORS 响应头信息,如 Access-Control-Allow-Origin。

浏览器请求分类解析

浏览器发送预检请求以及实际发送请求时就需要对浏览器请求做分类。 浏览器请求使用的是HTTP协议时,请求分类主要有:

HTTP 1.0: GET、POST、HEAD

HTTP 1.1: GET、POST、HEAD、[OPTIONS、PUT、PATCH、DELETE、TRACE、CONNECT]

在本次遇到的问题中已经设置好了 携带 CORS 响应头信息,如 Access-Control-Allow-Origin ,且tomcat中异常,可以肯定应用本身是设定好的。而服务器响应预检请求的时候实际是由 tomcat、tongweb这种应用服务器中间件来处理的。那么也就是说但凡浏览器发送的请求类型被应用服务器本身拦截了,那么必然是会出现跨域问题的,这时就需要让应用服务器允许对应的请求才行。

http请求方法简介

上述提到的浏览器请求分类,实际就是常说的http请求方法。主要http 请求方法介绍如下:

  • get:用于从服务器获取资源,例如请求一个网页或图片。这是最常见的请求方法,用于读取或下载数据。
  • head:与GET方法类似,但服务器在响应中只返回HTTP头部信息,不返回实际数据。这通常用于检索资源的元信息。
  • post:用于向服务器提交数据以供处理,例如表单提交或文件上传。POST请求通常用于添加新资源或更新现有资源。
  • put:用于更新服务器上的现有资源。客户端发送PUT请求时,会包含一个指定资源的新表示,服务器将用这个新表示替换原有资源。
  • delete:用于请求服务器删除指定的资源。
  • connect:用于建立到服务器的隧道化连接,通常用于代理服务器。
  • options:用于获取关于资源所支持通信选项的信息。服务器在响应中会包含一个Allow头,列出支持的所有请求方法。
  • trace:用于追踪请求-响应的传输路径,通常用于调试目的。

根据浏览器调试的信息可以看到当前问题的网络信息里 确实是有两次请求 :第一次请求时 http请求的方法类型为:options 也就是前文提到的 浏览器发送预检请求(Preflight Request):询问服务器是否允许该跨域请求。

第二次才是 实际请求:

 所以在tongweb 管理控制台里 设置 【WEB容器配置】中选择【HTTP通道管理】选择【tong-http-listener】里开放Options方法 就可以解决当下遇到的问题了。

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

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

相关文章

Qt 加载图片的几种方式 以及加载 loading

项目中经常使用加载图片: 常用有两种方式: 1.使用 QWidget 加载图片: 效果: 样例源码: int pict_H ui->widgetImage->height();int pict_W ui->widgetImage->width();ui->widgetImage->setFixe…

昇思25天学习打卡营第17天|SSD目标检测

学AI还能赢奖品?每天30分钟,25天打通AI任督二脉 (qq.com) SSD目标检测 模型简介 SSD,全称Single Shot MultiBox Detector,是Wei Liu在ECCV 2016上提出的一种目标检测算法。使用Nvidia Titan X在VOC 2007测试集上,SSD…

利用border绘制三角技巧

绘制三角形的效果如图 <html lang"zh-cn"> <head><meta charset"UTF-8"><title>demo</title><style>* {margin: 0;padding: 0;}.box {/* 盒子宽高改成零就变成三角形 &#xff0c;需要哪个方向的三角形就设置哪个方向…

【分布式系统五】监控平台Zabbix实际监控运用(命令+截图详细版)

目录 一.Zabbix 监控 Windows 1.安装zabbix 2.Web 页面添加主机&#xff0c;关联模板 二.Zabbix 监控 Java 应用 1.安装tomcat 2.服务端安装 zabbix-java-gateway 3.Web 页面添加主机&#xff0c;关联模板 三.Zabbix 监控 SNMP 1.服务端安装 snmp 监控程序 2.修改 sn…

RT-Thread和freeRTOS启动流程

一. freeRTOS启动流程 二. RT-Thread启动流程 因为RT-Thread中我们定义了补丁函数也叫做钩子函数--$Sub$$main()--作为一个新功能函数&#xff0c;可以将原有函数劫持下来&#xff0c;并在之后的程序运行中加上$Super $ $前缀来重新调用原始函数。 所以启动流程是$Sub$$main(…

Chiasmodon:一款针对域名安全的公开资源情报OSINT工具

关于Chiasmodon Chiasmodon是一款针对域名安全的公开资源情报OSINT工具&#xff0c;该工具可以帮助广大研究人员从各种来源收集目标域名的相关信息&#xff0c;并根据域名、Google Play应用程序、电子邮件地址、IP地址、组织和URL等信息进行有针对性的数据收集。 该工具可以提…

Nginx-简介

介绍 nginx是一款HTTP和反向代理服务器、邮件代理服务器和通用TCP/IP代理服务器&#xff0c;在俄罗斯广泛使用&#xff0c;用于代理高负载站点。 版本 nginx开源版nginx plus企业版openresty将nginx和lua脚本结合 tengine更稳定、高性能 正向代理 客户端和代理服务是一伙的…

【vue动态组件】VUE使用component :is 实现在多个组件间来回切换

VUE使用component :is 实现在多个组件间来回切换 component :is 动态父子组件传值 相关代码实现&#xff1a; <component:is"vuecomponent"></component>import componentA from xxx; import componentB from xxx; import componentC from xxx;switch(…

生产力工具|viso常用常见科学素材包

一、科学插图素材网站 一图胜千言&#xff0c;想要使自己的论文或重要汇报更加引人入胜&#xff1f;不妨考虑利用各类示意图和科学插图来辅助研究工作。特别是对于新手或者繁忙的科研人员而言&#xff0c;利用免费的在线科学插图素材库&#xff0c;能够极大地节省时间和精力。 …

【代码随想录】【算法训练营】【第58天】 [卡码110]字符串接龙 [卡码105]有向图的完全可达性 [卡码106]岛屿的周长

前言 思路及算法思维&#xff0c;指路 代码随想录。 题目来自 卡码网。 day 59&#xff0c;周五&#xff0c;继续ding~ 题目详情 [卡码110] 字符串接龙 题目描述 卡码110 字符串接龙 解题思路 前提&#xff1a; 思路&#xff1a; 重点&#xff1a; 代码实现 C语言 […

昇思25天学习打卡营第13天|linchenfengxue

Diffusion扩散模型 关于扩散模型&#xff08;Diffusion Models&#xff09;有很多种理解&#xff0c;本文的介绍是基于denoising diffusion probabilistic model &#xff08;DDPM&#xff09;&#xff0c;DDPM已经在&#xff08;无&#xff09;条件图像/音频/视频生成领域取得…

小蜜蜂WMS与小蜜蜂WMS对接集成根据条件获取客户信息列表(分页)连通新增客户信息(小蜜蜂读写测试)

小蜜蜂WMS与小蜜蜂WMS对接集成根据条件获取客户信息列表&#xff08;分页&#xff09;连通新增客户信息(小蜜蜂读写测试) 接通系统&#xff1a;小蜜蜂WMS 天津市小蜜蜂计算机技术有限公司&#xff08;acbee&#xff0c;TianJinACBEEComputerTechnologyCo.,Ltd&#xff09;成立于…

基于图像处理的滑块验证码匹配技术

滑块验证码是一种常见的验证码形式&#xff0c;通过拖动滑块与背景图像中的缺口进行匹配&#xff0c;验证用户是否为真人。本文将详细介绍基于图像处理的滑块验证码匹配技术&#xff0c;并提供优化代码以提高滑块位置偏移量的准确度&#xff0c;尤其是在背景图滑块阴影较浅的情…

模拟,CF 570C - Replacement

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 570C - Replacement 二、解题报告 1、思路分析 1、长为cnt的连续串的最小操作次数为cnt - 1 2、每次将一个非. 替换为. f要么增加1要么增加2 只有前后都是 . 的时候会增加2 同理&#xff0c;当我们将一…

STM32外扩SRAM及用法

一.概述 一般单片机有片内的RAM&#xff0c;但都不多&#xff0c;比如&#xff1a;STM32F407ZGT6 自带了 192K 字节的 RAM&#xff0c;对一般应用来说&#xff0c;已经足够了&#xff0c;不过在一些对内存要求高的场合&#xff0c;比如做华丽效果的 GUI&#xff0c;处理大量数据…

swagger的接口文档导入到yapi上

一、访问swagger接口 swagger集成到项目后&#xff0c;通过http:\\ip:port/swagger-ui.html 访问。 说明&#xff1a;这里的路径是基于swagger2。如果用swagger3&#xff0c;需要用swagger3的路径进行访问。 访问如图&#xff1a; 这就是swagger接口首页。如果想导入到yapi上…

AI绘画Stable Diffusion 新手入门教程:万字长文解析Lora模型的使用,快速上手Lora模型!

大家好&#xff0c;我是设计师阿威 今天给大家讲解一下AI绘画Stable Diffusion 中的一个重要模型—Lora模型&#xff0c;如果还有小伙伴没有SD安装包的&#xff0c;可以看我往期入门教程2024最新超强AI绘画Stable Diffusion整合包安装教程&#xff0c;零基础入门必备&#xff…

三叶青图像识别研究简概

三叶青图像识别研究总概 文章目录 前言一、整体目录介绍二、前期安排三、构建图像分类数据集四、模型训练准备五、迁移学习模型六、在测试集上评估模型精度七、可解释性分析、显著性分析八、图像分类部署九、树莓派部署十、相关补充总结 前言 本系列文章为近期所做项目研究而作…

工作助手VB开发笔记(2)

今天继续讲功能 2.功能 2.9开机自启 设置程序随windows系统启动&#xff0c;其实就是就是将程序加载到注册表 Public Sub StartRunRegHKLM()REM HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ Microsoft \ Windows \ CurrentVersion \ RunDim strName As String Applicat…

教师商调函流程详解

作为一名教师&#xff0c;您是否曾面临过工作调动的困惑&#xff1f;当您决定迈向新的教育环境&#xff0c;是否清楚整个商调函流程的每一个细节&#xff1f;今天&#xff0c;就让我们一起来探讨这一过程&#xff0c;确保您能够顺利地完成工作调动。 首先需要确定新调入的学校已…