axios设置 application/x-www-form-urlencoded无效

三种请求方式的区别

	Content-Type: application/json : 
	请求体中的数据会以json字符串的形式发送到后端
	Content-Type: application/x-www-form-urlencoded:
	请求体中的数据会以普通表单形式(键值对)发送到后端
	Content-Type: multipart/form-data: 
	它会将请求体的数据处理为一条消息,以标签为单元,用分隔符分开。
	既可以上传键值对,也可以上传文件。

设置后无效的原因是请求参数没有进行序列化,使用stringify()无效

const service = axios.create({
  // baseURL: 'http://localhost:8082', // api的base_url
  timeout: 50000, // 请求超时时间,
  headers: {
    // 'Accept': 'application/json, text/javascript, */*; q=0.01',
    'Content-Type': 'application/x-www-form-urlencoded'
    /**
     * Content-Type: application/json : 
     * 请求体中的数据会以json字符串的形式发送到后端
     * Content-Type: application/x-www-form-urlencoded:
     * 请求体中的数据会以普通表单形式(键值对)发送到后端
     * Content-Type: multipart/form-data: 
     * 它会将请求体的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。
     */
  }
})

此时虽然已经配置了application/x-www-form-urlencoded,但是发送请求时,请求的数据依旧是json格式
是因为请求参数没有序列化,此时需要使用qs对请求参数进行序列化

service.interceptors.request.use(config => {
  config.data = qs.stringify(config.data) 
  return config
}, error => { // 请求错误处理
  Promise.reject(error)
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值