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

最近发现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;
      },
阅读 4.2k
3 个回答

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

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题