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

什么?200?跨域?

情景复现

今天我遇到了一件很奇怪的事情就是,当我请求后端网关,然后通过网关去请求相应的服务,都进行了跨域处理

但是,奇怪的是我在请求的时候,回来的响应码是200,但是报错了,报的还是200的同源策略错误,这就让我这个小白迷糊了,我就立马去看了下后端的网关和服务的日志信息:如下:

  • 网关服务:
    网关服务
  • 业务服务:
    业务服务

就是请求显示的状态都是正常的,但是在浏览器控制台却报了200的错误,后面问了GPT发现原来是后端网关和业务服务跨域设置不同,比如:请求头和请求原信息之类的

附上GPT的回答:

出现这种情况可能有以下几个原因:1. 跨域配置不完整或不正确:除了在网关和用户服务中设置跨域相关的配置,还需要确保前端项目中的请求头中包含正确的跨域信息。可以通过在请求头中添加`Access-Control-Allow-Origin`字段来指定允许跨域的源,或者配置`Access-Control-Allow-Origin`为`*`来允许所有源进行跨域请求。2. 网关和用户服务的跨域设置不一致:需要确保网关和用户服务的跨域设置是一致的,包括允许的请求方法、请求头、请求源等。可以通过在网关和用户服务中添加相同的跨域配置来保持一致。3. 请求中携带了非简单请求:如果请求中包含了非简单请求,例如使用了自定义的请求头或请求方法,浏览器会先发送一个预检请求(OPTIONS请求)进行跨域检查。在这种情况下,需要确保网关和用户服务都能够正确处理预检请求,并返回正确的跨域响应头。4. 代理设置不正确:如果在开发环境中使用了代理进行请求转发,可能需要在代理配置中添加跨域相关的配置。确保代理服务器能够正确转发请求,并将跨域相关的响应头信息返回给前端。综上所述,要解决这个问题,可以逐步检查以上几个方面,确保跨域配置正确并一致,请求头中包含正确的跨域信息,以及代理设置正确。如果仍然存在问题,可以进一步查看前端和后端的日志,以及网络请求的具体情况,来进行排查和调试。
http://www.lryc.cn/news/114238.html

相关文章:

  • 【数据结构与算法——TypeScript】算法的复杂度分析、 数组和链表的对比
  • 搜索综合训练
  • snowboy+新一代kaldi(k2-fsa)sherpa-onnx实现离线语音识别【语音助手】
  • APT80DQ20BG-ASEMI快恢复二极管80A 200V
  • Go的任务调度单元与并发编程
  • PDFbox教程_编程入门自学教程_菜鸟教程-免费教程分享
  • Node.js-模块化理解及基本使用
  • arguments 和 剩余参数
  • 【BASH】回顾与知识点梳理(十二)
  • 本地构建包含java和maven的镜像
  • Programming abstractions in C阅读笔记:p76-p83
  • 已解决(三个问题)|neo4j Failed authentication attempt for ‘meter‘ from 127.0.0.1
  • neo4j查询语言Cypher详解(二)--Pattern和类型
  • 动态规划(用空间换时间的算法)原理逻辑代码超详细!参考自《算法导论》
  • Jmeter添加cookie的两种方式
  • 【ArcGIS Pro二次开发】(58):数据的本地化存储
  • React配置代理服务器的5种方法
  • 树莓派:5.jar程序自启运行
  • Vivado中SmartConnect和InterConnect的区别
  • 了解HTTP代理日志:解读请求流量和响应信息
  • 排序-堆排序
  • 挑战Open AI!!!马斯克宣布成立xAI.
  • HTTP协议学习笔记1
  • 【网络基础实战之路】基于OSPF协议建立两个MGRE网络的实验详解
  • 【学习日志】2023.Aug.6,支持向量机的实现
  • LeetCode_动态规划_中等_1749.任意子数组和的绝对值的最大值
  • 无涯教程-Perl - 环境配置
  • QT显示加载动画
  • 原型模式(C++)
  • web浏览器打开本地exe应用