本文为博主原创,未经允许不得转载:
总结一下,最近在vue中实现一个文件下载的功能,用了vue中ajax的方式请求下载接口,
但是返回报错,在网上查询之后,找到用ajax请求下载文件报错的原因:ajax方式请求的数据只能存放在javascipt内存空间,
可以通过javascript访问,但是无法保存到硬盘,因为javascript不能直接和硬盘交互,否则将是一个安全问题。
错误方式:
_this.$http.post('/file/exportDetail.do',params)
可正确进行文件下载的方式有两种:
第一种:location.href 进行文件下载,在当前窗口进行文件下载
toExport(id){ var url2 = "/file/exportDetail.do?id="+id; window.location.href = url2; },
第二种:window.open进行文件下载,默认会跳转到新窗口进行文件下载
toExport(id){ var url2 = "/file/exportDetail.do?id="+id; window.open(url2); },
参考:https://www.cnblogs.com/nuccch/p/7151228.html