当前位置: 首页 > news >正文

jsp网站开发模式wap自助建论坛网站

jsp网站开发模式,wap自助建论坛网站,连江县建设局网站,网站手绘教程背景如下: 近期在做的项目中,有个奇怪的需求,需要在JSP项目中嵌套一个VUE项目,原因是:JSP项目是在运且不大方便重构的一个项目,新需求又想为了未来着想做一套单独的项目,无奈只能嵌套。 当项目开…

       背景如下

       近期在做的项目中,有个奇怪的需求,需要在JSP项目中嵌套一个VUE项目,原因是:JSP项目是在运且不大方便重构的一个项目,新需求又想为了未来着想做一套单独的项目,无奈只能嵌套。

        当项目开发差不多,需要部署时候,就忽然遇到了今天要聊的跨域问题。

        项目部署时候,JSP项目和VUE项目分别分配了一个端口,当JSP项目跳转到VUE时候,登录失败了(为何是登录失败,等我换一篇细聊权限验证相关内容时候说说)。

        关于此时的失败,一直没有头绪,看到返回值是200,但是F12看网络请求就是红色的一条。直到看到请求status竟然是CORS error(出问题一定要仔细看每一处提示),才定位大概方向是跨域问题。

        知道范围是跨域问题导致的,但是问题来了:

  1. 什么是跨域?
  2. 跨域是怎么产生的?
  3. 一般都是如何解决的?
  4. 记得项目中经常配置跨域相关内容,但是应该配置在哪,给谁配置?

        一个个聊。。。

首先什么是跨域?

        当浏览器向服务器发起请求时,以下三个要素中任意一个不匹配,则会被视为跨域请求

  1. 协议不同(如:http和https)

  2. 域名不同(如:test.com和api.test.com)

  3. 端口不同(如:8080和3000)

        对上面三个要素的判断是由浏览器做的,目的是为了安全,防止出现网页中嵌套其他网站,被其他网站随意调用后出现安全问题。

跨域是怎么产生的?

        我的理解:就是在一个网站里,一般只允许同一个协议、IP(域名)、端口的请求,比如:

http://192.168.0.1:8080/index
http://192.168.0.1:8080/getList
http://192.168.0.1:8080/test/info/test0001

        这些请求都没问题,但是如果冒出来一个

http://192.168.0.1:8081/info/add

        这时候浏览器就会认为有点问题,不能执行!感觉有点类似人体的排他反应一样。。。

跨域怎么解决呢?

        1.常见处理方法之一:接受请求的项目,配置相关CORS的参数,允许某些协议、域名、端口的请求

        2.常见处理方法之二:代理服务器,使用Nginx区分,不同项目,公共同一个端口,请求路径中特殊前缀来区分不同服务

        3.(我没用过的)处理方式三:JSONP(限GET请求)

                利用<script>标签不受同源策略限制的特性,后端返回一个函数包裹的数据

        4.(我还没用过,用过websocket但是没因为处理跨域用)处理方式四:用websocket

应该配置在哪,给谁配置?

        如果我们自己信任两个网站,都知道是做什么的,甚至就是自己的不同项目,如上面的例子,8080调用8081,那我们就得配置到8081上。

        配置到接受的一方。


        前面一顿回顾复习,到我们遇到的问题这里呢?

        在F12中,除了network显示的CORS Error,还有console中报错如下:

Access to XMLHttpRequest at 'http://192.168.10.10:3000/api/auth/login?tm=123123123123&username=test&password=1111' from origin 'http://192.168.10.10:8080' has been blocked by CORS policy: The 'Access-Control-Allow-Origin' header contains multiple values 'http://192.168.10.10:8080, *', but only one is allowed.

        描述一下问题:从8080端口来的请求已被CORS策略终止了,请求头参数'Access-Control-Allow-Origin'中配置了多个值,但是只能有一个。

        问题更具体了,我们这个服务相关关系是:

  1. 所有请求经过Nginx
  2. 到微服务的网关
  3. 到各项目

        看了看配置,两处都配置了跨域相关内容。。。

Nginx:

http {include mime.types;default_type application/octet-stream;add_header 'Access-Control-Allow-Origin' '*';add_header Access-Control-Allow-Headers X-Requested-With;add_header Access-Control-Allow-Methods GET,POST,OPTIONS;...
}

gateway:

spring:cloud:gateway:globalcors:corsConfigurations:'[/**]':allowedOriginPatterns: "*"allowed-methods: "*"allowed-headers: "*"allow-credentials: trueexposedHeaders: "Content-Disposition,Content-Type,Cache-Control"

        最终定位问题是:配置重复了

        不过,最终的处理方式是使用代理服务器,两个项目规划到同一个端口下,一个用根目录(/),另一个用一个特殊前缀(/ABC)

http://www.dtcms.com/a/536976.html

相关文章:

  • WEBSTORM前端 —— 第5章:Web APIs —— 第6节:正则阶段案例
  • 长春 万网 网站建设千年之恋网页设计代码
  • h5游戏免费下载:保护鸡蛋
  • node+pupeteer使用socks5作为代理协议
  • 光亚鸿道全资子公司科东软件通过2025专精特新 “小巨人” 企业认定
  • 北京做养生SPA的网站建设免费自创网站
  • 舟山网站建设有哪些网站建立分站
  • 【AI论文】大型语言模型(LLM)推理中连接内部概率与自洽性的理论研究
  • 数据结构——堆排序
  • 文档处理控件Aspose.Words教程:Python将Markdown转换为Word
  • 智能体综述:探索基于大型语言模型的智能体:定义、方法与前景
  • 第 16 天:安全、防火墙与系统强化
  • 厦门市建设区网站首页163企业邮箱下载
  • 用手机建立网站做网站植入广告赚钱
  • Spring Boot3零基础教程,HttpInterface,笔记75
  • 南宁网站建设服务加盟策划公司
  • PDFBox - PDF 页面坐标系、PDF 页面尺寸获取、PDF 页面位置计算
  • VBA实现word文档批量转PDF文件
  • asp.net购物网站模板入群修改网站后台
  • Transformer整体结构与自注意力机制的实现
  • LeetCode 852.山脉数组的峰顶索引
  • 提升 Web 端 JavaScript 的可信度:WAICT 体系详解
  • 做公司网站图片算是商用吗建立一个网页需要多少钱
  • 广州网站制作功能春雨app直播免费版下载
  • LangGraph 官方教程:聊天机器人之四
  • 【多模态】qwen3-vl的强化微调
  • 网站开发岗位思维导图vps 网站攻击ip地址
  • python-docx 节操作
  • [nanoGPT] 文本生成 | 自回归采样 | `generate`方法
  • 【Linux专栏】shell脚本变量的取值|转换