问答

为啥vue中a标签下载点击一次会加载两次下载的情况(刷新的情况下

作者:admin 2021-05-07 我要评论

最近发现vue中使用a标签下载有个很诡异的问题,就是刷新之后点击下载会下载两次。接着再点击下载又是下载一次。本地没有这样的情况,上线就出现这样的情况。有哪...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

最近发现vue中使用a标签下载有个很诡异的问题,就是刷新之后点击下载会下载两次。接着再点击下载又是下载一次。本地没有这样的情况,上线就出现这样的情况。有哪位大佬遇到过的吗?测试过了跟调用getList多少次没有关系,因为getList就是搜索不断搜索n次再点击下载都是纸下载一次。跟token没有关系,因为刷新之后getList也重新请求数据了,然后才点击下载,这个时候是存在token的。留言,感激不尽。

<a  id="outExcelApplyCheckIn">下载</a>
        getList(){
        let params={}
        this.setExcel(params)
          },
       setExcel(params) {
        let outExcelApplyCheckInDom = document.getElementById('outExcelApplyCheckIn');
        let token = this.$store.state.token;
        let searchParamsHref = '';
        let baseHref = `${url.export}?token=${token}`;
        //判断对象是否有值
        if (Object.keys(params).length > 0) {
          for (let i in  params) {
            if (i != 'page' && i != 'size') {
              searchParamsHref += `&${i}=${params[i]}`
            }
          }
        }

       let allHref = baseHref + searchParamsHref;
        outExcelApplyCheckInDom.href = allHref;
      },
###

猜测可能的原因是刷新之后,vuex中token被清空了。导致

let baseHref = `${url.export}?token=${token}`;

这句话的地址改变了,所以向服务器又请求了一次。

###

建议贴出调用getList方法的地方

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 为啥vue中a标签下载点击一次会加载两次

    为啥vue中a标签下载点击一次会加载两次

  • 前端正则匹配

    前端正则匹配

  • 55寸大触摸屏排版元素尺寸怎么写?

    55寸大触摸屏排版元素尺寸怎么写?

  • mongoose列表查询,怎么查询出每一条数

    mongoose列表查询,怎么查询出每一条数

腾讯云代理商
海外云服务器