首页 > 解决方案 > 使用 axios 发布请求和获取响应

问题描述

从axios响应中获取数据在console.logged时返回未定义的值我尝试了很多方法,但响应总是显示未定义这是usersdata const userdatas = [ {id:1,firstname:“Leanne”,lastname:“Gram”,密码:“123”,电话:“9474211442”}**

客户

handleSubmit=(e)=>{ 
              alert(this.state.Firstname)
              e.preventDefault();
              axios.post('http://localhost:3001/login', {
                lastname: JSON.stringify(this.state.Lastname),
                firstname: JSON.stringify(this.state.Firstname),
                password:JSON.stringify(this.state.password),
                phoneno:JSON.stringify(this.state.phoneno)

              }).then(res=>alert(res.data.id))



            }

]

表达

 const userdatas=[  {id: 1,firstname: "Leanne",lastname:"Gram",password: "123",phone:"9474211442"}**

app.post('/login',(req,res)=>{
let logindetail={firstname:req.body.firstname,
password:req.body.password}
logindetail.firstname=logindetail.firstname.replace(/['"]+/g, '')
logindetail.password=logindetail.password.replace(/['"]+/g, '')


var count = Object.keys(userdatas).length;

for(var i=0;i<count;i++)
{
if(logindetail.firstname===userdatas[i].firstname&&logindetail.password===userdatas[i].password)
{
  res.json(userdatas[i])
}

}

});

标签: reactjsaxios

解决方案


在您的Express部分中,似乎是一个对象,但您正试图在调用userdatas中像数组一样查找它。res.json您需要Object.keys像设置计数值时一样将其包装起来。


推荐阅读