Express POST接口Axios请求返回[object Object]问题求助
问题原因与解决方案
嘿,这问题太常见啦——你遇到的异常根本不是接口本身的问题,而是没正确获取Axios响应里的实际数据!
为什么会显示[object Object]?
Axios请求返回的res是一个完整的响应对象,它包含data、status、headers等多个属性,你后端接口返回的JSON数据其实存在res.data里。当你用字符串拼接'response from gettodoLists' + res时,JavaScript会把对象强制转成字符串,结果就是[object Object]。
修正后的代码
只需要把访问响应数据的地方改成res.data就行:
axios .post('todo-lists/getTodoLists', { userEmail: this.userEmail }) .then(res => { // 用逗号分隔能让控制台展开对象,或者用JSON.stringify转成可读字符串 console.log('response from gettodoLists', res.data) this.todolist = res.data // 这里也要改为res.data,才能拿到正确的列表数据 console.log(this.todolist) }) .catch(err => { console.log(err) })
额外小技巧
如果想查看完整的Axios响应结构(比如状态码、响应头),可以这样打印:
// 方式1:用逗号分隔,控制台自动展开对象 console.log('完整响应对象:', res) // 方式2:转成格式化的字符串,方便查看结构 console.log('完整响应对象:', JSON.stringify(res, null, 2))
Postman能正常返回数据,说明你的Express后端接口完全没问题,只要调整前端对Axios响应的处理逻辑,就能拿到预期的todo列表啦!
内容的提问来源于stack exchange,提问作者Adam Cole
相关产品推荐
相关产品推荐

