reactjs - 使用 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])
}
}
});
解决方案
在您的Express
部分中,似乎是一个对象,但您正试图在调用userdatas
中像数组一样查找它。res.json
您需要Object.keys
像设置计数值时一样将其包装起来。
推荐阅读
- python - 将 Python 程序设置为在一定天数后过期
- javascript - 表单JS提交成功后想要重定向到URL
- ffmpeg - ffprobe 以何种顺序为您提供帧信息?解码或演示顺序?
- android - SetupWithNavController 不适用于工具栏
- database - 如何使用 Neo4j 浏览器访问我自己的数据库
- react-native - 如何检查本机反应是否支持加速度计?
- python - access csv files in python
- hiveql - How to use IFNULL function in hive?
- scala - spark-submit中scala程序的异步执行
- angular - bsDatepicker 不适用于 Angular 表单验证