当我们使用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类型的示例
基础教程推荐
- javascript操作JSON的要领总结 2024-01-07
- java 集合工具类Collections及Comparable和Comparator排序详解 2023-01-08
- FilenameUtils.getName 函数源码分析 2023-06-01
- @FeignClient path属性路径前缀带路径变量时报错的解决 2023-02-10
- eclipse里没有“Dynamic Web Project“这个选项的问题解决 2023-04-12
- Java 方法(方法的定义,可变参数,参数的传递问题,方法重载,方法签名) 2024-01-07
- java – 生成名称排列和数据库 2023-10-29
- jsp页面中引用其他页面的简单方法 2023-08-01
- 学生选课管理系统(SQL+Java 附源码) 2023-10-29
- Java应用打包成Docker镜像 2023-01-24
