一般导出文件已经有很常用的方式: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)
    },

这些网上都有的啊!!!可是我有时候就是找不到啊啊啊

先放着,以后用于参考