Axios get函数发送空请求

时间:2020-10-30 10:56:39

标签: node.js reactjs axios mern

我正在做一个简单的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)

})

1 个答案:

答案 0 :(得分:3)

GET请求没有数据或正文。检查此答案here

TLDR

axios({
    method: 'GET',
    url: `http://localhost:4444/next/api`,
    params: {
       id: 'id'
    }
})