使用 Axios 发送 JSON 数据

发布于 2022-09-11 13:45:34 字数 1771 浏览 208 评论 0

如果您将 JavaScript 对象作为第二个参数传递给 axios.post() function ,Axios 会自动为你将对象序列化为 JSON。 Axios 还将设置 Content-Type 标题到 'application/json' 这样的 web 框架 Express 可以自动解析它。

// Axios automatically serializes `{ answer: 42 }` into JSON.
const res = await axios.post('https://httpbin.org/post', { answer: 42 });

res.data.data; // '{"answer":42}'
res.data.headers['Content-Type']; // 'application/json;charset=utf-8',

这意味着您通常不必担心将 POST 正文序列化为 JSON:Axios 会为您处理。

使用预序列化的 JSON

如果您碰巧有一个想要作为 JSON 发送的序列化 JSON 字符串,请小心。 如果您将字符串传递给 axios.post(),Axios 将其视为 表单编码的请求体

const json = JSON.stringify({ answer: 42 });
const res = await axios.post('https://httpbin.org/post', json);

// Axios automatically sets the `Content-Type` based on the
// 2nd parameter to `axios.post()`.
res.data.headers['Content-Type']; // 'application/x-www-form-urlencoded',

解决方案很简单:确保设置 Content-Type 如果您将预序列化的 JSON 字符串传递给 axios.post()

const json = JSON.stringify({ answer: 42 });
const res = await axios.post('https://httpbin.org/post', json, {
  headers: {
    // Overwrite Axios's automatically set Content-Type
    'Content-Type': 'application/json'
  }
});

res.data.data; // '{"answer":42}'
res.data.headers['Content-Type']; // 'application/json',

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

感情旳空白

暂无简介

0 文章
0 评论
2462 人气
更多

推荐作者

已经忘了多久

文章 0 评论 0

15867725375

文章 0 评论 0

LonelySnow

文章 0 评论 0

走过海棠暮

文章 0 评论 0

轻许诺言

文章 0 评论 0

信馬由缰

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文