利用get post 请求下载文件

利用get post 请求下载文件

post请求
function downLoadFile (url, params, fileName) {
  const xhr = new XMLHttpRequest()
  xhr.open('post', url)
  xhr.setRequestHeader('Content-Type', 'application/json')
  xhr.responseType = 'blob'
  xhr.send(JSON.stringify(params))
  xhr.onreadystatechange = () => {
    if (xhr.readyState === 4 && xhr.status === 200) {
      // 兼容IE,只有IE浏览器的navigator有这个方法,谷歌浏览器没有
      if (navigator.msSaveBlob) {
        return navigator.msSaveBlob(xhr.response, fileName)
      }
      const blobUrl = URL.createObjectURL(xhr.response)
      const link = document.createElement('a')
      link.href = blobUrl
      link.download = fileName
      link.click()
    }
  }
}

get请求
url = url + '?';
  for (let key in param) {
    // 去掉 "
    let keyStr = JSON.stringify(key).replace(/"/g, '');
    if (param[keyStr] === undefined) {
      continue
    }
    if (param[keyStr] === null) {
      param[keyStr] = ''
    }
    url += `${keyStr}=${param[keyStr]}&`//拼接参数
  }
  url = url.substring(0, url.lastIndexOf('&'))//去掉末尾&
  window.open(url)

post请求来源: https://blog.csdn.net/bye_cherry/article/details/109373781

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值