我正在做一个简单的MERN博客项目,尝试学习新事物。我已经制作了服务器,现在正在与客户端一起工作。我已经用Postman测试了端点,并且端点工作正常。问题出在axios的客户端。
const sensorResponse = await axios({
method: 'get',
url: url,
headers: {"X-Auth-Token": localStorage.getItem('auth-token'),
"content-type": "application/json" },
data : {
userId: user.id
}
})
和获取终点
router.get('/', auth, async (req,res)=>{
const {userId} = req.body;
console.log(req.body);
console.log(userId);
const blogs = await Blog.find({userId:userId})
res.json(blogs)
})
授权是正确的,“ auth”功能中的console.log显示并正确验证令牌。不幸的是,在控制台中,端点将req.body显示为空对象。我尝试了另一个请求功能:
const blogResponse = await axios.get(url,data,headers)
但它的工作原理相同... 你们可以建议我这个请求的样子吗?
//////已解决的问题
const sensorResponse = await axios({
method: 'get',
url: url,
headers: {"x-auth-token": localStorage.getItem('auth-token'),
"content-type": "application/json" },
params: {
'userId': user.id
}
})
并要在请求中获取通过参数传递的userId,端点应类似于:
router.get('/', auth, async (req,res)=>{
const userId = req.query.userId;
console.log(userId)
const blogs= await Blog.find({userId:userId})
res.json(blogs)
})
答案 0 :(得分:3)
GET请求没有数据或正文。检查此答案here
TLDR
axios({
method: 'GET',
url: `http://localhost:4444/next/api`,
params: {
id: 'id'
}
})