用Axios发送POST JSON请求

您所在的位置:网站首页 axios请求数据的方法 用Axios发送POST JSON请求

用Axios发送POST JSON请求

2023-08-14 00:30| 来源: 网络整理| 查看: 265

简介

Axios是一个基于承诺的HTTP客户端库,它使得向REST端点(主要是API)发送异步HTTP请求(如POST 、GET 、DELETE )变得简单。

在这篇文章中,我们将学习如何用Axios发送POST JSON请求,以及如何处理之前的序列化和非序列化的数据。

如何使用Axios发送POST JSON请求

POST请求是用来发送数据到一个端点的。例如,如果我们有一个注册页面,用户提交他们的信息,这些信息可以作为JSON发送到我们使用POST JSON请求指定的端点。

我们使用Axios的axios.post() 方法来发送POST请求,该方法需要两个主要参数--端点的URL(url ),以及代表我们想要发布的数据的对象(data )。

axios.post(url[, data[, config]])

除了这两个参数,还有第三个参数--config 。它被用来配置我们要发送的POST请求,主要是设置头文件。

发送未序列化的数据

需要注意的是,Axios默认使用JSON来发布数据,这意味着我们传递给Axios的任何对象都会自动将对象序列化为JSON,并将Content-Type 头部设置为application/json 。让我们在例子中说明一下--假设我们发布的对象是{ name: 'John Doe' } 。

const result = await axios.post('https://testapi.org/post', { name: 'John Doe' });

Axios会自动将该对象序列化为JSON格式。

console.log(result.data.data); // '{"name":"John Doe"}'

而且正如我们所说的,它还会将我们的Content-Type 头部设置为application/json 。

console.log(result.data.headers['Content-Type']); // 'application/json;' 发送序列化的JSON字符串

到目前为止,我们已经看到Axios会自动序列化我们发送的任何数据,但在这种情况下,我们将发送一个序列化的JSON字符串作为axios.post() 方法的第二个参数。

const usersName = JSON.stringify({ name: 'John Doe' });

Axios会简单地把这个数据当作一个表单编码的请求体,而不是把内容类型头设置为application/json ,如下图所示。

const usersName = JSON.stringify({ name: 'John Doe' }); const result = await axios.post('https://testapi.org/post', usersName); console.log(result.data.headers['Content-Type']); // 'application/x-www-form-urlencoded',

为了解决这个问题,我们需要明确地将Content-Type 头部设置为application/json 。我们可以通过在调用axios.post() 方法时传递config 参数来做到这一点。

const usersName = JSON.stringify({ name: 'John Doe' }); customConfig = { headers: { 'Content-Type': 'application/json' } }; const result = await axios.post('https://testapi.org/post', usersName, customConfig); console.log(result.data.data); // '{"name":"John Doe"}' console.log(result.data.headers['Content-Type']); // 'application/json', 结论

在这篇文章中,我们学习了如何用Axios发送POST JSON请求,充分意识到这些数据可能是序列化的,也可能是非序列化的,我们处理了两种情况。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3