在用vue-element-admin封装的request.js工具类发送post请求时,后端服务接口获取不到request请求体
·
最终,问题是出在 vue-element-admin 模板中自带mock模块上。 request请求体是流式数据,如果在其他地方消费过,不做特殊处理的话,后面的应用就消费不到了。 前端通过node转发到后端应用,思考了半天,觉得只有mock才会影响到request请求体,所以去mock-server.js中去查看。
果然,在mock中有对于request请求体的处理逻辑,此处消费了requestBody,导致在node转发时,request请求体丢失。从而导致传到后端没有请求体,但是后端在解析的时候发现request请求头的content-length是有值的,就一直等待接收数据,与此同时,前端也在等待后端返回结果。当超过设置的请求时长后,前端等待超时,前端发EOF请求(具体为何会发EOF还需要进一步学习),后端收到以后,发现和预期的消息不一致,就报了EOF这个错误。 解决方式: 1. 将mock-server.js中的关于处理请求体的两行代码注释,重新启动项目即可。
2. 因为是实际的项目开发,直接将模板中关于mock的相关配置注释掉或者直接删除。 mock在 vue-element-admin 中有两个相关配置,分别在 main.js 和 vue.config.js 中,具体位置如下。 main.js中:
vue.config.js中:
更多推荐
已为社区贡献4条内容
所有评论(0)