发表于: 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组件自定义上传的时候不显示图片上传的进度条,需要优化下。



返回列表 返回列表
评论

    分享到