axios下载指定文件
let url='http://192.18.0.12/a/123.xls'
axios.get(
url, { params: data, responseType: 'blob' }
).then(res => {
this.loading = false;
const content = res.data;
if (content.size < 500) {
UI.Error('导出失败');
} else {
const blob = new Blob([content]);
const elink = document.createElement('a')
elink.download = 'haha.zip';
elink.style.display = 'none';
elink.href = window.URL.createObjectURL(blob);
document.body.appendChild(elink);
elink.click();
window.URL.revokeObjectURL(elink.href);
document.body.removeChild(elink);
}
}).catch(err => {
this.loading = false;
// err为blob格式数据,需要转回json格式
err.text().then(respone => {
let errObj = JSON.parse(respone);
console.error(errObj.toString());
})
})
- 在 Axios 中,responseType 是一个重要的配置选项,您告诉服务器返回的数据以什么格式返回。
常用的 responseType 选项:
- 'arraybuffer':将响应数据解析为 ArrayBuffer 对象。这适用于处理二进制数据或下载文件。
- 'blob':将响应数据解析为 Blob 对象。这适用于处理二进制数据或下载文件。
- 'document':将响应数据解析为 Document 对象。这适用于处理 XML 或 HTML 文档。
- 'json':将响应数据解析为 JSON 对象。这适用于处理 JSON 数据。
- 'text':将响应数据解析为字符串。这适用于处理纯文本数据。
axios.get('/api/data', { responseType: 'json' })
.then(function (response) {
// 处理响应数据
console.log(response.data);
})
.catch(function (error) {
// 处理错误
console.log(error);
});
如果您不确定用哪种 responseType,请查与您的后端开发人员沟通以了解正确的设置。
URL.revokeObjectURL()
是一个用于释放通过URL.createObjectURL()
创建的对象 URL 的方法。可以避免内存泄漏。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话