记一次window.open()下载传参

目的效果:

http://localhost:9000/api/v1/xxx/xxx/xxx/download?data=[{"id":"1647xxxx922369"}]&token="Bear xxxxxxxxxxxxxxx"

问题:1.参数包含数组对象时,用JSON.stringfy()转换后还是出现【object,object】的问题


      const temp = [
        {
          id: row.id,
          url: row.url,
          name: row.file
        }
      ]
      let url = `/api/v1/ftp/public/raw/download?data=${temp}&token=${getToken()}`
      window.open(encodeURI(url), '_blank')

 解决方法:

     const temp = [
        {
          id: row.id,
          url: row.url,
          name: row.file
        }
      ]
      var a = 'data='.concat(JSON.stringify(temp)) 
 //当在字符串中拼接变量时需要\""+变量名+"\" 如果完成引号不转义html就不会识别引号内的引号会把引号内的引号当成一个变量
      let url = `/api/v1/ftp/public/raw/download?${a}&token=${getToken()}`
      window.open(url, '_blank')

问题:2.拼上去的参数里的特殊字符被转义 如冒号(:)、斜杠(/)http://localhost:9528/api/v1/ftp/public/raw/download?data=[{%22id%22:%221647158523109404674%22,%22url%22:%22/dis/static_resource/home/MSSData/raws/CH2/20230412/01_030617055_548378_MSS1A_H_2_NBGS_OP_F97_20230412B170607_0001.dat%22}]解决方法:encodeURI:用于对网址编码(不包含参数)

      const temp = [
        {
          id: row.id,
          url: row.url,
          name: row.file
        }
      ]
      const token = getToken()
      var a = 'data='.concat(JSON.stringify(temp))
      let url = `/api/v1/ftp/public/raw/download?${a}&token=${getToken()}`
      window.open(encodeURI(url), '_blank')  //encodeURI:用于对网址编码(不包含参数)

问题:3.window.open()下载,闪屏问题

原因:window.open()默认打开一个新窗口

解决方法:window.location.href = ‘下载地址’

      const temp = [
        {
          id: row.id,
          url: row.url,
          name: row.file
        }
      ]
      var a = 'data='.concat(JSON.stringify(temp))
      let url = `/api/v1/ftp/public/raw/download?${a}&token=${getToken()}`
      window.location.href = encodeURI(url) //不闪屏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值