vue下载excel乱码(同一方法在其他框架正常下载)

问题背景

  1. 使用公司封装过的vue-cli2框架
  2. 同一个方法在其他框架正常下载excel文件
  3. 使用axios+携带token+blob下载excel
  4. 后端推流正确

前端接收工具类代码

const getExcel = (url, params = {}) => {
	let { filename = 'xxx.xlsx', methods = 'get' } = params;
	const instance = axios.create({
		headers: {
			'mstoken': Auth.getJwtToken()
		},
		responseType: 'blob',
		timeout: 0 //避免下载大文件断开连接
	});
	startLoading();
	instance[methods](url, params)
    .then(res => {
        console.log(res);
	if (res.headers['content-disposition']) {
		const disposition = res.headers['content-disposition'].split(
          'filename='
        )[1];
		filename = decodeURIComponent(disposition);
	}
	save(res.data, { filename });
})
    .finally(endLoading());
};

问题所在
1.响应流被框架拦截下来在封装一遍
2.导致数据丢失
3.拦截的不是axios的拦截器,而mock(虚拟接口)
4…这种情况一般是请求被拦截封装了
总结
vue下载excel乱码(同一方法在其他框架正常下载)_第1张图片

你可能感兴趣的:(前端)