使用 Axios 发送 POST 请求时,可以通过第二个参数传递请求体数据(即请求参数),通过第三个参数传递请求头数据(即请求头参数)。
以下是一个示例代码,用于发送一个 POST 请求,同时传递请求参数和请求头参数:
const axios = require('axios');
const data = {
name: 'John Doe',
age: 30
};
const headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer token'
};
axios.post('https://example.com/api', data, { headers })
.then((response) => {
console.log(response.data);
})
.catch((error) => {
console.error(error);
});
在上面的示例代码中,data 对象表示请求参数,headers 对象表示请求头参数。Axios 的 post 方法的第三个参数就是一个配置对象,可以传递请求头参数。
在请求头参数中,Content-Type 表示请求体的数据类型,Authorization 表示授权信息,可以根据实际情况修改。另外,在这个例子中,请求体的数据格式是 JSON,因此需要将 Content-Type 设置为 application/json。如果请求体的数据格式是 application/x-www-form-urlencoded,则需要将 Content-Type 设置为 application/x-www-form-urlencoded,并将请求体的数据格式化为 URL 编码的形式。
注意,当使用 application/x-www-form-urlencoded 格式时,可以使用 Node.js 内置的 querystring 模块来格式化请求体的数据。以下是一个示例代码:
const axios = require('axios');
const querystring = require('querystring');
const data = {
name: 'John Doe',
age: 30
};
const headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': 'Bearer token'
};
axios.post('https://example.com/api', querystring.stringify(data), { headers })
.then((response) => {
console.log(response.data);
})
.catch((error) => {
console.error(error);
});
在上面的示例代码中,querystring.stringify() 方法用于将 data 对象格式化为 URL 编码的形式,然后将它作为请求体的数据。
相信坚持的力量,日复一日的习惯.