发表于: 2020-04-25 20:56:15
1 1464
今天完成的事情:
1.推进任务
明天计划的事情:
1.推进任务
遇到的问题和收获:
let service = axios.create({
timeout: 5000, //超时配置 5秒
responseType: 'json', // 响应数据格式
responseEncoding: 'utf8', // 响应数据编码
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
transformRequest:[data=> {
console.log(data);
return data
}]
transformRequest对数据的处理,可以默认全局为true,用qs.stringify序列化处理data并返回出去。只是不知道怎么处理对应图片接口,如何让图片接口传入一个false不序列化处理。
换了下方法。在图片接口请求时,给headers传入一个自定义参数handleQs为false
return service({
method: 'post',
url: '/api/a/u/img/task',
data: formData,
headers: {
showLoading: false,
handleQs:false,//传入一个handleQs,在拦截请求时,如果为此false,则不做序列化处理
'Content-Type': 'multipart/form-data'
}
})
然后再request请求时判断这个handleQs是否为false,就知道是图片接口在请求,就不进行序列化了。
service.interceptors.request.use(
config => {
console.log('request请求成功');
console.log(config);
// console.log(service);
//由上传接口传入一个headers:handleQs,在拦截请求时,如果为此false,则不做序列化处理
config.method === 'post' && config.headers.handleQs !== false
? config.data = qs.stringify({...config.data.data})
: config.params = {...config.params};
这种方法是传参数到headers,并且request请求的时候读取得出来。
就是不清楚transformRequest怎么接收到图片接口类似的数据进行判断。
还有一处地方。el-upload组件自定义上传的时候不显示图片上传的进度条,需要优化下。
评论