You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中通过API请求重发OTP遇问题,如何正确发送请求体?

问题解答

是否需要发送请求体?

HTTP规范中,GET请求的设计目的是获取资源,标准不支持携带请求体,绝大多数后端框架也不会解析GET请求的请求体。你当前用GET方式传递data的做法是错误的,这也是收到错误响应的核心原因。

至于是否需要传递参数,取决于目标API的要求,但绝对不能用GET请求携带请求体传递参数。

正确实现方案

根据API文档的不同要求,有两种正确的实现方式:

方案1:改用POST请求(若API要求用POST传参)

如果API文档规定用POST请求并通过请求体传递参数,将axios.get改为axios.post即可,POST的第二个参数就是请求体:

function resendOtp() {
  const data = {
    email: email,
    mobile: mobile,
    source: email,
  };
  axios
    .post(`${API_URL}/user/otpResend`, data)
    .then((response) => {
      console.log(response.data);
    })
    .catch((err) => {
      console.error(err);
    });
}

方案2:用GET请求传递查询参数(若API要求用GET)

如果API文档规定用GET请求,需要将参数放到URL的查询字符串中。可以使用axios的params配置项,它会自动把参数拼接到URL末尾:

function resendOtp() {
  const params = {
    email: email,
    mobile: mobile,
    source: email,
  };
  axios
    .get(`${API_URL}/user/otpResend`, { params })
    .then((response) => {
      console.log(response.data);
    })
    .catch((err) => {
      console.error(err);
    });
}

关键提示

务必对照API文档确认:

  • 请求方法是POST还是GET
  • 参数的传递方式是请求体还是URL查询参数

内容的提问来源于stack exchange,提问作者Cirrus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 14:45:13