使用get请求下载文件非常简便,但是get请求的url有长度和大小的限制,所以当请求参数非常多时无法满足需求,所以改成post请求
const res = await fetch('xxxxxxxxx', { method: 'post', body: json.stringify(params), credentials: 'include', headers: { 'cache-control': 'max-age=0', 'pragma': 'no-cache', 'content-type': 'application/json;charset=utf-8', 'x-requested-with': 'fetch' } }); const blob = await res.blob(); if ('download' in document.createelement('a')) { var a = document.createelement('a'); a.style.display = 'none'; var url = window.url.createobjecturl(blob); var filename = decodeuricomponent(res.headers.get('content-disposition')); a.href = url; a.download = filename; document.body.appendchild(a); a.click(); window.url.revokeobjecturl(url); document.body.removechild(a); } else { navigator.mssaveblob(blob); }
如对本文有疑问, 点击进行留言回复!!
Android 入门第七讲01-数据存储(数据存储概述,文件存储(raw和asserts目录读写,data/data/包名目录读写,sdcard目录读写),SharedPreferences读写)
vue-axios系列:axios拦截器,配置请求头,配置请求参数
Vuejs 针对 安卓低版本 、ios9.x 不兼容 ES6语法导致失效解决方法
网友评论