服务器从用axios发出的POST http请求中得到空的request.body的原因可能有以下几点:
- 请求头未设置正确的Content-Type:在使用axios发送POST请求时,需要设置正确的Content-Type头部信息,以告知服务器请求体的格式。常见的Content-Type类型有application/json、application/x-www-form-urlencoded等。如果未设置正确的Content-Type,服务器可能无法正确解析请求体,导致request.body为空。
- 请求体未正确序列化:在使用axios发送POST请求时,需要将请求体正确序列化为字符串。如果未进行正确的序列化,服务器可能无法正确解析请求体,导致request.body为空。常见的序列化方式有JSON.stringify()和qs.stringify()。
- 服务器端未正确解析请求体:服务器端需要正确解析请求体,将其转换为可读取的数据格式。常见的解析方式有body-parser中间件、express.json()等。如果服务器端未正确解析请求体,request.body可能为空。
- 请求体数据未正确传输:在网络传输过程中,请求体数据可能会丢失或损坏,导致服务器无法正确接收请求体数据。这可能是由于网络不稳定或其他原因引起的。可以尝试重新发送请求或检查网络连接。
综上所述,服务器从用axios发出的POST http请求中得到空的request.body可能是由于请求头未设置正确的Content-Type、请求体未正确序列化、服务器端未正确解析请求体或请求体数据未正确传输等原因导致的。在解决问题时,可以逐步排查以上可能的原因,并进行相应的调试和修复。