问题描述
今日在使用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内容无法通过代理转发到后端