一般导出文件已经有很常用的方式:get请求
直接用链接就能获取到需要导出的文件
但是吧……
直接用get方式有点问题:如果直接用一条连接的方式,我该怎么给它穿个入参?直接在地址后面加问号比如这样==>https://i.cnblogs.com/EditPosts.aspx?id=1?(其实最后我验证了:不用加token_code也是可以的,代理会直接带回去!!!!)
抱歉,swagger接口要求在头部添加token_code
抱歉,前端,前端的fecth上 没有写处理get 方式的请求(简直想打死写fecth的家伙!额,后面听说这个fecth的居然是我自己!!!)
抱歉,我不想写get 我让后端把请求改成post
后端告诉我,post的话,要你自己在前端处理才行的喔
我说好的。我查一下
后端:你们的lsten同学有处理过用post导出,你去问他
我:哦,好的。我好像已经看到他写的代码了
后端:那行吧,给你换成get
我:可别啊!你新加一个接口给我啊,万一呢!你新加一个接口给我。
后端妥协了。
不说了,我直接发代码,用于以后的参考
post请求:
model_download () { let params = { tempNo: 10000 } this.$store.dispatch('download_Templete', params) .then(data => { this._download(data) console.log(1) }) .catch(() => { this.$message({message: '下载错误', type: 'error'}) }) },
请求后处理
_download (data) { if (!data) { return } let url = window.URL.createObjectURL(new Blob([data.data])) let link = document.createElement('a') link.style.display = 'none' link.href = url link.setAttribute('download', decodeURI(data.filename)) document.body.appendChild(link) link.click() link.parentNode.removeChild(link) },
这些网上都有的啊!!!可是我有时候就是找不到啊啊啊
先放着,以后用于参考