vue项目中的vue.config.js配置文件中的proxy代理post一直在预检

news2024/11/25 4:03:07

记录一个比较有意思的bug,帮别人调试遇到的,一个哥们一直在群里问了好几次同一个问题了,他配置了代理,请求一直在发送,postman测试没问题,可以成功接收到,但是在项目前端请求,确实一点响应没有,刚开始我以为是content-type数据格式跟后端没对应上,但是他说试了很多,各种数据类型都没有用,后端他自己写,第一次用。然后昨晚就帮他进行了一个调试。

使用的依赖
在这里插入图片描述

首先可以看到,postman测试给我报的是Internal Server Error,这是我没有他的数据库的原因。
请添加图片描述
后端是接收到的,证明请求是正常的。
在这里插入图片描述

然后前端项目进行一个请求,确是在一直待处理中,更可笑的是前端没有报错。

在这里插入图片描述
代理配置
在这里插入图片描述

axios请求也没问题啊
在这里插入图片描述
在这里插入图片描述
关键是get请求能够发送成功。在我百思不得其解的时候,我直接把 axios baseURL换成请求服务的地址。它竟然成功发送了请求,返回500的错误,那就是跑了代理,出了问题。
在这里插入图片描述
然后我跑去问GPT3.5老师,是这样的
如果在 Vue 项目中设置代理时,GET 请求能够正常代理,而 POST 请求无法生效,可能是因为在默认情况下,webpack-dev-server 只对 GET 请求进行代理。
在这里插入图片描述
但是我想了想,好像对get,post都起作用吧。就在问了一句。
在这里插入图片描述
果然GPT老师很会开玩笑。
然后能咋办,百度啊,看官网啊,我选择了前者。
得到的答案是,看的都是让改域名什么localhost改成127.0.0.1,没什么用。还是这个有效,nodejs官方只是说服务器禁止访问,也没说原因。

猜测可能是代理后post的数据格式上有问题。
然后对post代理进行一个处理。

  devServer: {
    port: port,
    open: true,
    overlay: {
      warnings: false,
      errors: true
    },
    before: require('./mock/mock-server.js'),
    proxy: {
      // 配置代理 希望拦截当前的host地址 替换为目标地址
      // key: {}   ;  key为拦截的规则,可以是正则表达式
      // http://localhost:9528/lejuAdmin/index/login
      // 发送的请求首先会经过proxy的拦截
      '/api': {
        // http://leju.bufan.cloud/lejuAdmin/index/login 对发生的请求的域名做一个改写
        // target: "http://192.168.219.70:8000", // 8080可以省略不写 所以代理地址和当前项目不是同一个地址!!
        target: "http://localhost:8000", // 8080可以省略不写 所以代理地址和当前项目不是同一个地址!!
        changeOrigin: true, // 如果是跨域 需要添加
        // secure:false, //  如果发生的请求的协议是https  secure:false,
        onProxyReq: function (proxyReq, req, res, options) {
          if (req.body) {
            let bodyData = JSON.stringify(req.body);
            // incase if content-type is application/x-www-form-urlencoded -> we need to change to application/json
            proxyReq.setHeader('Content-Type','application/json');
            proxyReq.setHeader('Content-Length', Buffer.byteLength(bodyData));
            // stream the content
            proxyReq.write(bodyData);
          }
        },
        pathRewrite: {
          // pathRewrite 可以改写发送的请求路径
      
          // /lejuAdmin/index/login
          // /index/login
          // '/lejuAdmin' : "/"
          // ['/xxx']: '/yyy'
          "^/api": ""
        },
        logLevel: 'debug' // 打印调试信息
      }
    }
  },

在这里插入图片描述
主要还是这个函数,然后发现成功了。
在这里插入图片描述
很好直接500,剩下的事情不是我处理的了。

具体原因为啥会这样,我也有点懵逼,得去看看node官网,感觉这种是偶然概率的感觉,但是会出现。这个bug也是挺有意思。

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

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

相关文章

黑芝麻智能科技、上海紫先面试(部分)(未完全解析)

黑芝麻智能科技 Hystrix可以限流吗?客户端限流,是限制对下游(被调用方)的访问,不是对本服务限流。从HystrixCommand的.withExecutionIsolationStrategy(ExecutionIsolationStrategy.SEMAPHORE)也可以看出来&#xff0c…

C++ -- 异常

文章目录 1. C语言传统处理2. C异常概念3. 异常的使用3.1 异常抛出并没有被捕获3.2 正确使用3.3 捕获异常采用类型匹配就近原则3.4 catch(...)可以捕获任意类型异常3.5 抛出派生类对象使用基类捕获3.6 异常重新抛出3.7 匹配规则3.8 异常规范3.9 异常安全 4. 自定义异常体系5. 异…

05.动态协议OSPF基础

文章目录 **OSPF简介****OSPF和RIP的区别****RIPV2和OSPFV2相同点****不同点** OSPF基础概念OSPF区域OSPF路由类型区域划分的要求**OSPF多区域****Router ID****Router ID选取规则****度量值** OSPF数据包OSPF状态机条件匹配 OSPF的工作过程OSPF基本配置**OSPF的拓展配置** OSP…

番外12:获取晶体管漏极电流源平面的仿真波形

番外12:获取晶体管漏极电流源平面的仿真波形 老是有同学反应,仿真中无法获取漏极电流源平面的仿真波形,在此给出解释与解决办法。 1、ADS能够访问到部分器件的电流源平面波形 对于某些器件,比如说CGH40010F,可以在仿…

硬核了解一下内核链表

一,内核链表定义 言以蔽之,内核链表就是个带头结点的循环双链表。 普通的链表是将next指针定义成为与该结构体一样的类型,这样做通用性不好。与普通的链表的定义和使用方式不一样,内核的链表定义成为了一种通用的结构&#xff1a…

vue打包到生产环境

1.进入到项目根目录执行 npm run build此时会自动打包在dist目录下 2.安装服务 npm install -g serve3.启动 serve dist以上是生产环境打包的过程。 npm run dev 是开发环境, npm run build 是生产环境

Springboot 错用list.stream , 遭遇list浅拷贝偷袭,实战图解

前言 相信很多看客都听闻过深拷贝、浅拷贝 , 但是在日常使用的过程中,是否真的有关心过或者遭遇过呢? 不啰嗦,一起来看看。 正文 接下来我通过示例,来复现一下 list.stream浅拷贝 这个事 : 首先是一个对象…

Nacos服务注册成功,RestTemplate调用服务提供者时空指针异常(已解决)

发现问题并进行记录 目录 项目场景:问题描述原因分析解决 项目场景: RestTemplate也可以做服务调用(进行测试) 目的:解决该问题,不考虑其他远程调用方式(Fegin,Dubbo) 项目Pom文件 Spring Boot ----2.6.3 Spring Cloud------2021.0.1 Spring Cloud Al…

Elasticsearch介绍和安装

ELK简介 Elastic Stack核心产品包括Elasticsearch、Logstash、Kibana(也称为ELK)和Beats等等。能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化 Kibana是一个免费且开放的用户界面,能…

Apikit 自学日记:可以对 API 发评论

该功能仅供API研发管理企业版 您可以直接在API文档上发布评论,所有的沟通内容都会跟随API文档保留下来并且按照版本分类好,而不是零散地存在各种聊天工具中。 发表评论 在API详情页,点击 评论 按钮,在弹窗中可以输入评论信息并点…

FPGA实验一:层次法设计组合电路(加法器)

目录 一、实验目的 二、实验要求 三、实验代码 四、实验结果及分析 1、引脚锁定 2、仿真波形及分析 3、下载测试结果及分析 五、实验心得 一、实验目的 (1)掌握基本组合逻辑电路的 FPGA实现; (2)学习 Verilo…

使用安装器安装windows gcc— MinGW及让windows像Linux一样的MSYS

这里使用installer进行安装GCC,主要是installer安装其它依赖,如MSYS,autoconf,automake,libtool,vim,perl,mingw-developer-toolkit等,mingw下载地址,如图download链接的mingw-get-setup.exe文件…

高级端口扫描工具

高级端口扫描程序可查看哪些服务在哪个端口上运行、开放端口数量、连接的交换机,并帮助保护网络免受未经授权的访问。作为网络管理员,扫描网络中的开放端口、这些端口已连接到的交换机以及在其上运行的服务,并将已知服务与已识别的服务与高级…

迁移学习入门,新手该如何下手?

推荐迁移学习技术的实用入门图书:《自然语言处理迁移学习实战》 [加纳] 保罗阿祖雷(Paul Azunre) 著,李想,朱仲书,张世武 译 一本书带你读懂ChatGPT背后的技术,自然语言处理迁移学习,解锁机器学…

Xcode Build System

Xcode Build System iOS开发者都使用Xcode来开发、编译程序,但是我们真正了解xcode是怎样编译我们的程序到手机上的么,下面我们主要看看xcode的编译系统内容 一、Preprocessor 预处理:在此步骤中xcode会处理代码中的宏,将其展开…

19k字图文讲解Vision科研常用的系统环境配置和工具(附详细命令行)

猛码Memmat | 转载请注明来源 最近作者有了新设备,趁更新系统写一篇博客为小白讲解这一入门过程 目录 ArchLinux 安装指南(新手向)前言准备工作检查网络通过 SSH 远程连接(可选)硬盘分区格式化并挂载分区设置中国镜像源(推荐)安装系统系统初始化设置进阶设置设置交换空…

VScode中的插件

开启VScode中最简单的内部浏览器 - 可以访问外网 - Browser Preview 插件安装: 插件使用:由下角 - 状态栏 - VS Browser按钮 live sass compiler-vscode插件将scss编译为css live sass compiler是VSCode扩展,可以实时地将SASS / SCSS文件…

基于Spring Boot的智慧社区系统设计与实现(Java+spring boot+MySQL)

获取源码或者论文请私信博主 演示视频: https://www.bilibili.com/video/BV1kF411R7Tp/?vd_sourced8d0eebf6c94c5aa49fe3f992c8887b0使用技术: 前端:html css javascript jQuery ajax thymeleaf 后端:Java springboot框架 myba…

Django搭建图书管理系统01

Django框架 Django是一个使用Python编写的开源Web应用程序框架。它采用了MVC(Model-View-Controller)的软件设计模式,旨在简化开发复杂的Web应用程序。 以下是Django框架的一些主要特点: 强大的开发工具:Django提供了…

计算机毕业论文内容参考|基于Python的入侵检测系统的设计与实现

文章目录 导文摘要前言绪论课题背景国内外现状与趋势课题内容相关技术与方法介绍系统分析系统设计系统实现系统测试总结与展望导文 计算机毕业论文内容参考|基于Python的入侵检测系统的设计与实现 摘要 本文介绍了基于Python的入侵检测系统的设计与实现。首先,简要概述了入侵…