如何使用Axios发布查询参数?

2022-08-30 02:39:08

我正在尝试使用一些查询参数在API上发布。这是在PostMan / 失眠时工作,当我试图通过传递邮件和名字作为查询参数:

 http://localhost:8000/api/mails/users/sendVerificationMail?mail=lol%40lol.com&firstname=myFirstName

但是,当我尝试使用我的react本机应用程序执行此操作时,我得到了400错误(无效的查询参数)。

这是发布方法:

.post(`/mails/users/sendVerificationMail`, {
  mail,
  firstname
})
.then(response => response.status)
.catch(err => console.warn(err));

(我的邮件和名字是 console.logged 如下:和 )。lol@lol.commyFirstName

因此,我不知道如何在我的请求中使用Axios传递查询参数(因为现在,它正在传递。data: { mail: "lol@lol.com", firstname: "myFirstName" }


答案 1

axios 的 post 签名是 。所以你想在第三个参数中发送params对象:axios.post(url[, data[, config]])

.post(`/mails/users/sendVerificationMail`, null, { params: {
  mail,
  firstname
}})
.then(response => response.status)
.catch(err => console.warn(err));

这将发布一个包含两个查询参数的空正文:

邮政 http://localhost:8000/api/mails/users/sendVerificationMail?mail=lol%40lol.com&firstname=myFirstName


答案 2

截至2021年,我不得不添加{}而不是null才能使其工作!

axios.post(
        url,
        {},
        {
          params: {
            key,
            checksum
          }
        }
      )
      .then(response => {
        return success(response);
      })
      .catch(error => {
        return fail(error);
      });