Axios POST FormData格式请求

我的项目需求是三种登录方式切换登录,由于对发请求格式不太熟悉的缘故,导致证书/秘钥登录方式花费了一些时间,记录下这次的问题如下:

证书/秘钥登录方式都需要上传证书/秘钥文件,请求体的格式(FormData格式),需要根据登录方式修改header中的"Content-Type"属性为"multipart/form-data":

headers: {'Content-Type': 'multipart/form-data'}

还需要对请求传参进行格式化,然后进行自己需要的请求操作就可以啦~~~

let url = "loginURL";
let username = "Daysons";
let loginType = "CERTIFICATE";
let data = new FormData();
data.append("username", username);
data.append("file", file); //file为其他方式传递过来的
data.append("loginType", loginType);
Axios.post(url, data, {
  headers: {'Content-Type': 'multipart/form-data'}
});

关于表单请求的默认编码application/x-www-form-urlencoded发送请求又该怎么写呢? 

let url = "loginURL";
let data = {
  username: "Daysons",
  loginType: "CERTIFICATE"
};
Axios.post(url, qs.stringify(data), {
  headers: {'Content-Type': 'application/x-www-form-urlencoded'}
});

// 或者

const data = new URLSearchParams();
data.append('username', 'Daysons');
data.append('loginType', 'CERTIFICATE');
Axios.post(url, data, {
  headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}); //有兼容性问题

其中qs.stringify的作用是讲传参序列化未多个键值对;

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值