【问题标题】:Axios GET request sends empty req.body to serverAxios GET 请求将空的 req.body 发送到服务器
【发布时间】:2020-07-09 08:53:10
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: node.js express axios


    【解决方案1】:

    来自RFC 7231

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

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

    此外,如果您想通过 GET 请求发送查询参数,您在上面共享的两个代码 sn-ps 都将不起作用。而是像下面那样做。

    // 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
        }
    });
    

    【讨论】:

    • 感谢您的回答! res.body 部分是我在写问题时犯的一个错字,现在已经更新了。
    猜你喜欢
    • 2021-02-12
    • 2017-10-19
    • 1970-01-01
    • 1970-01-01
    • 2019-06-09
    • 2017-01-28
    • 1970-01-01
    • 2020-09-17
    • 2022-01-04
    相关资源
    最近更新 更多