Axios请求出现req.body缺失问题,该GET请求代码为何导致body为空?
问题分析与解决方案
这段代码的核心问题是在GET请求中携带了data参数。
HTTP协议规范里,GET请求的设计目的是从服务器获取资源,并不支持通过请求体(body)传递数据。虽然Axios语法上允许在GET请求里写
data配置,但绝大多数后端框架(比如Express、Koa等)会直接忽略GET请求的请求体内容,这就导致后端的req.body为空。正确的做法是把需要传递的参数放到URL的查询字符串(query string)里,Axios可以通过
params配置来实现:
const getLatest = async (limit) => (await axios({ method: "GET", url: `/posts/latest`, params: { limit: limit } })).data;
这样后端就能通过req.query.limit拿到对应的参数值了。
内容的提问来源于stack exchange,提问作者Bot Ellis
相关产品推荐
相关产品推荐

