axios发送post请求,content-type一直是json的问题

在axios中,post请求默认content-type是json,但实际需要发送表单数据时,需要手动配置。官方文档虽未提供编码表单功能,需自行处理。全局配置content-type为'application/x-www-form-urlencoded'可解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

官方文档

官方文档说post请求默认值是以表单形式提交的。

axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';

问题

我需要发送表单,但是我我发送的post的请求都是application/json

解决办法

官方文档虽然默认设置post请求是application/x-www-form-urlencoded但是它本身并没有提供编码表单的函数,也就是说需要自己写,如果自己没有写,那么它依然是application/json方式提交。

最简单实现,全局配置:

 transformRequest: [function (data) {
    // 对 data 进行任意转换处理
    let str = '';
    for (const key in data) {
      str += encodeURIComponent(key) + '=' + encodeURIComponent(data[key]) + '&'
    }
    return str.slice(0, str.length - 1);
  }],

不仅仅是表单编码,所有其它的功能都需要自己配置。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值