打赏

axios 文件下载代码 片段

<script type="text/javascript">
            axios({
                method:'post',
                url: 'url',
                // 最好qs.stringify,不然接口易报错400
                data: {},
                // blob类文件对象
                responseType: 'blob'
            }).then(res => {
                let blob = new Blob(res.data,{
                    // 若是excel的话 需要设置下面的type
                    type: 'application/vnd.ms-excel'
                });
                let link = document.createElement('a');
                link.href = window.URL.createObjectURL(blob);
                // 文件名
                let filename = res.headers;
                filename = filename['content-disposition'];
                if (filename && filename.length > 0) {
                    filename = filename.split(';')[1].split('filename=')[1];
                } else{
                    filename = '写死的名字.xlsx'
                }
                link.download = filename;
                link.click()
            })
        </script>

 注意,想要获取headers中content-disposition的数据,服务端要加一个:

 context.Response.Headers.Add("Access-Control-Expose-Headers", "Content-Disposition");

 

posted @ 2019-09-03 11:36  孟繁贵  阅读(495)  评论(0编辑  收藏  举报
TOP