如何用AxiosInstance.request()传递FormData实现二进制文件POST请求
使用axiosInstance.request()传递FormData实现POST请求
原来的axios.post(url, formDataObj, config)可以直接转换为axiosInstance.request()的调用方式,核心是把所有参数整合到一个配置对象中,具体语法如下:
基础写法
let data = await axiosInstance.request({ method: 'POST', url: url, data: formDataObj, // 原config中的配置项直接放入这里,比如请求头、超时时间等 headers: config.headers, timeout: config.timeout });
简洁写法(展开原配置)
如果原config中没有method、url、data这些字段,可以直接用展开运算符合并,减少重复代码:
let data = await axiosInstance.request({ method: 'POST', url: url, data: formDataObj, ...config });
关键说明
method必须指定为'POST',对应原来的axios.post方法data字段就是你要传递的FormData对象,和axios.post的第二个参数完全一致- 原
config中的请求头、超时、拦截器配置等,都可以直接合并到这个配置对象里 - 不需要额外手动设置
Content-Type: multipart/form-data,axios会自动根据FormData类型为你设置请求头(除非你有自定义需求)
内容的提问来源于stack exchange,提问作者meg
相关产品推荐
相关产品推荐

