【问题标题】:axios post request body is wrongaxios post请求正文错误
【发布时间】:2021-12-05 18:16:12
【问题描述】:

我正在尝试将我的 react 应用程序连接到我的节点 api。 我设法获取数据,但是当我尝试发布数据时,正文格式全错了。 我关注了axios docs

这是我的代码:

import Axios from "axios";

const api = Axios.create({
  baseURL: "http://localhost:8000",
  timeout: 1000,
  headers: {'Content-Type': 'application/x-www-form-urlencoded'}
});


await api.post("/",{data:"someData"});
    populateData(); // a function that gets data from server

当我在服务器中记录req.body 时,这就是我得到的

{ '{"data":"someData"}': '' }

当我没有设置任何标题时,正文是空的。 因此,通过一些研究,我尝试放置其他类型的标头,但没有找到解决方案

【问题讨论】:

  • 你为什么要强制内容类型为application/x-www-form-urlencoded?看来你想要 JSON 在这里。
  • 当我强制 application/json req.body 为空时
  • 而且,正如您显然发现的那样,您没有在服务器上解析 JSON,这就是 req.body 为空的原因。不管怎样,很高兴你想通了。

标签: node.js reactjs api axios


【解决方案1】:

我猜你想将数据发送到后端。你可以这样做。

await api.post("/",data);

或者

await axios.post('/', {
    data: { //here },
});

如果正文格式又错了,也许你可以试试这个。

JSON.parse(JSON.stringify(req.body));

【讨论】:

  • 嘿,很遗憾它对我不起作用,尝试了所有选项
【解决方案2】:

解决方案是在快速配置中。 我没有添加中间件来解析 json 请求,只添加了 urlencoded 的请求。

一旦我添加了这个代码来表达,并将配置类型设置为application-json,它就起作用了

app.use(express.json());

【讨论】:

    猜你喜欢
    • 2019-11-14
    • 2016-04-11
    • 2022-07-24
    • 2019-09-12
    • 2022-01-05
    • 2019-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多