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

新手上路,请多包涵

我正在尝试使用一些查询参数在 API 上发布。

当我尝试将邮件和名字作为查询参数传递时,这适用于 PostMan / Insomnia:

 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" }

原文由 GuillaumeRZ 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 641
2 个回答

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

 .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

原文由 enapupe 发布,翻译遵循 CC BY-SA 4.0 许可协议

从 2021 年开始,我必须添加 {} 才能使其正常工作!

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

原文由 Vasilis Mpletsos 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题