webpack-dev-server代理未转发Post请求Body内容

在Vue-cli和axios开发中遇到跨域问题,使用webpack-dev-server代理时,发现Content-Type为application/json的POST请求Body在代理过程中消失。通过Postman和Wireshark分析,确认问题出在前端代理,非后端。研究源码和社区问题后,发现bodyParser和http-proxy-middleware可能同时编码Body导致问题。解决方案是调整两者执行顺序或使用http-proxy-middleware的onProxyReq方法处理请求Body。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

今日在使用Vue-cli + axios开发的过程中,遇到了跨域问题(此处对于跨域就不详解了,请点击此处传送门),于是就利用devServer的HTTP代理功能来解决跨域,但是此时就遇到了一个棘手的问题:使用代理之后,Content-Type为application/json的HTTP Post请求在代理转发时,Body竟然神奇的消失了

以下我将附上我所遇到问题时的解决思路,以及问题更加详细描述,如果不敢兴趣可直接预览最后的解决方案章节

解决思路

一开始我以为是后端的问题,但是通过Postman发送同样的请求以及wareShark抓包,我将问题定位到了前端代理上:

以下附上Postman截图:
在这里插入图片描述
在这里插入图片描述
从上图可得出以下信息 Content-Type: application/json,可以正常的被后端解析

那么从上就可以确定后端服务器是正常的,真正的问题在于前端


于是我使用chrome抓取的浏览器的Http包,得到以下截图
在这里插入图片描述
上图可看到,在请求到达localhost:9527代理服务器时,无论Body还是Header都是正常的,那么可以肯定并不是我代码写错了而导致的乌龙


为了验证是代理的问题,我通过wareShark进行了抓包分析,并得到了以下结论
1. 使用Content-Type: application/json格式的HTTP Post请求的Body内容无法通过代理转发到后端

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值