Axios GET请求将空的req.body发送到服务器

时间:2020-07-09 08:53:10

标签: node.js express axios

我试图在我的React应用程序中发出GET请求,但是Axios出于某种原因似乎发送了一个空的请求正文。我知道后端(最有可能)没有错,因为我可以使用Insomnia完美地提出请求。到目前为止,我已经尝试了以下方法,但似乎都不起作用:

const response = await axios.get(URL, { email })

const response = await axios({
    method: "get",
    url: URL,
    data: { email }
})

我在后端中使用express.json()中间件。

1 个答案:

答案 0 :(得分:2)

RFC 7231

GET请求消息中的有效载荷没有定义的语义; 在GET请求上发送有效内容正文可能会导致一些现有内容 拒绝请求的实现。

因此不要依赖正文数据来进行GET请求,而应使用适当的HTTP方法(如POST,PUT等)。

此外,如果您想随GET请求一起发送查询参数,则上面共享的两个代码段将不起作用。而是像下面这样。

// using get method
const response = await axios.get(URL, {
    params: {
      ID: 12345
    }
  });


// using Axios API
const response = await axios({
    method: "get",
    url: URL,
    params: {
      ID: 12345
    }
});