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

记录一个比较有意思的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/jsonproxyReq.setHeader('Content-Type','application/json');proxyReq.setHeader('Content-Length', Buffer.byteLength(bodyData));// stream the contentproxyReq.write(bodyData);}},pathRewrite: {// pathRewrite 可以改写发送的请求路径// /lejuAdmin/index/login// /index/login// '/lejuAdmin' : "/"// ['/xxx']: '/yyy'"^/api": ""},logLevel: 'debug' // 打印调试信息}}},

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

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

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

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

相关文章

Qt/C++原创项目作品精选(祖传原创/性能凶残)

00 前言说明 从事Qt开发十年有余,一开始是做C#.NET开发的,因为项目需要,转行做嵌入式linux开发,在嵌入式linux上做可视化界面开发一般首选Qt,当然现在可选的方案很多比如安卓,但是十多年前那时候板子性能低…

Nginx常用配置及和基本功能讲解

Nginx已经广泛应用于J-one和Jdos的环境部署上,本文对Nginx的常用的配置和基本功能进行讲解,适合Ngnix入门学习。 一、核心配置 找到Nginx安装目录下的conf目录下nginx.conf文件,Nginx的基本功能配置是由它提供的。 配置文件结构 Nginx的配…

linux中安装nginx

2.安装nginx 2.1 安装nginx前,需要安装的依赖(可能是由于nginx版本旧原因,可能最新或较新版本不需安装这些依赖) 如下四个依赖需要安装到linux中 2.1.1 安装 pcre 依赖 (使用wget命令) 步骤一&#xff1…

由中序及后序遍历序列构建二叉树的函数参数解析

【二叉树构建函数的参数确立示意图】 ile:中序遍历左端点位置,iri:中序遍历右端点位置 ple:后序遍历左端点位置,pri:后序遍历右端点位置 【函数代码】 int build(int ile,int iri,int ple,int pri){int ro…

MySql存储引擎介绍——InnoDB、MyISAM、Memory

文章目录 1.MySql体系结构2.存储引擎简介3.存储引擎的特点3.1 InnoDB存储引擎特点3.2 MyISAM存储引擎介绍3.3 Memory存储引擎介绍 4.三种存储引擎的特点5.存储引擎的选择6.小结 1.MySql体系结构 2.存储引擎简介 存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式…

基于springboot+mybatis-plus+mysql+vue音乐网站管理系统

基于springbootmybatis-plusmysqlvue音乐网站管理系统 一、系统介绍1、系统主要功能:2.涉及技术框架:3.项目说明: 二、功能展示三、其它系统四、获取源码 一、系统介绍 1、系统主要功能: 音乐播放 用户登录注册 用户信息编辑、头…

Failed to start connector [Connector[HTTP/1.1-8080]]

1、解决Web server failed to start. Port 8080 was already in use 2、SpringBoot启动报错:“Error starting ApplicationContext. To display the conditions report re-run your application with ‘debug’ enabled.” 3、Failed to start end point associated with Proto…

这所985太好考了,专硕06方向仅刷一人,其余过线全收!

一、学校及专业介绍 东北大学(Northeastern University)位于辽宁省沈阳市,是中华人民共和国教育部直属全国重点大学。它是国家“双一流”建设高校、国家“211工程”和“985工程”重点建设高校,全国首批博士、硕士学位授予单位。 …

RabbitMQ 常用 API

RabbitMQ 常用 API Connection 和 Channel 的创建、关闭 创建 Connection ConnectionFactory factory new ConnectionFactory(); // 方式1:通过设置参数创建 factory.setHost(IP_ADDRESS); factory.setPort(PORT); factory.setUsername("guest"); facto…

【AJAX】使用JQ发送AJAX发送请求

首先要引入JQ <script crossorigin"anonymous" src"https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>服务端代码 // 服务端准备 // 1、引入express const express require(express); // 2、创建应用对象 const app expr…

Elasticsearch【文档操作、搜索操作、入门案例】(五)-全面详解(学习总结---从入门到深化)

目录 原生JAVA操作ES_文档操作 原生JAVA操作ES_搜索操作 SpringDataES_入门案例 原生JAVA操作ES_文档操作 新增&修改文档 Test public void addDocument() throws IOException {// 1.创建客户端对象&#xff0c;连接ESRestHighLevelClient client new RestHighLevelC…

【算法 -- LeetCode】(14) 最长公共前缀

1、题目 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀&#xff0c;返回空字符串 “”。 示例 1&#xff1a; 输入&#xff1a;strs [“flower”,“flow”,“flight”] 输出&#xff1a;“fl” 示例 2&#xff1a; 输入&#xff1a;strs [“dog”,“…