当我们使用axios发送POST请求时,常见的请求头的Content-Type类型有两种,一种是JSON类型,一种是form数据类型。
当我们使用axios发送POST请求时,常见的请求头的Content-Type类型有两种,一种是JSON类型,一种是form数据类型。
对于form数据类型,我们需要将JSON格式数据转成urlencoded形式,才能够被服务器正确解析。下面是详细攻略:
1. 设置Content-Type为application/x-www-form-urlencoded
使用axios发送post请求时,需要设置请求头Content-Type为application/x-www-form-urlencoded:
import axios from 'axios'
const postData = {
username: 'user',
password: 'password'
}
axios({
method: 'post',
url: '/api/login',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
data: postData
})
.then(response => {
console.log(response)
})
.catch(error => {
console.log(error)
})
2. 将JSON数据转换为Form Data
我们需要将JSON数据转换为Form Data格式,这就需要借助一个名为qs的第三方库。先使用npm或yarn安装qs:
npm install qs --save
然后在使用axios之前,导入qs模块,将JSON格式数据转换为Form Data格式,然后再通过axios发送请求:
import axios from 'axios'
import qs from 'qs'
const postData = {
username: 'user',
password: 'password'
}
axios({
method: 'post',
url: '/api/login',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
data: qs.stringify(postData)
})
.then(response => {
console.log(response)
})
.catch(error => {
console.log(error)
})
在以上过程中,我们利用qs.stringify方法,将postData对象转换成了'name1=value1&name2=value2'形式的字符串,同时设置了Content-Type为application/x-www-form-urlencoded,发送POST请求,并在请求体中携带了postData。
本文标题为:使用axios发送post请求,将JSON数据改为form类型的示例
基础教程推荐
- Springboot发送邮件功能的实现详解 2023-05-24
- SpringBoot @GroupSequenceProvider注解实现bean多属性联合校验的示例代码 2023-04-13
- Java8 Lamdba函数式推导 2022-09-03
- SpringBoot整合Javamail实现邮件发送的详细过程 2023-06-30
- SpringMVC MVC架构与Servlet使用详解 2023-06-10
- Google App Engine,Java数据存储区查询:如何使用SQL Like语句? 2023-11-10
- 我认为JSP有问题(下) 2024-01-09
- SpringBoot集成MQTT示例详解 2023-03-15
- VSCode中开发JavaWeb项目的详细过程(Maven+Tomcat+热部署) 2023-06-06
- Java线程池详细解读 2024-03-08