• get方法获取导出excel后台导出


    get调取接口需要传数组的时候如果和post方法一样直接传个数组的话,会变成&aa[]=1&aa[]=2&aa[]=3基本上差不多应该是这样的结果,导致你调取接口的时候报400啥的

    正常的样式应该是&aa=1,2,3这样

    问题:vue项目中,用axios封装请求数据时,get请求传递参数为数组时,get拼接url并不能把参数正确的传递过去,
    解决:get传参需要前面自己转一下传参的格式

    最初错误传参


    转换传参格式

    axios.get('/gateway/xxx', {
    params: {
    ID: 001,
    provincesData: provinces+ '',
    }
    })
    // 在参数后面加上( + ''),即可把数组变成字符串
    // 请求变成 '.../user?ID=001&provincesData=1,2,3

    所以最简单的方法直接后面填(+“”)变成string类型

    接下来就是导出了

    后台掉接口,返回一大串乱七八糟的东西反正看不懂就对了

     接下来砸门需要给这个东西进行处理

    data就是后台返回来的着一大长串乱七八糟的

    fileName就是文件名
    export function exportMethod(data, fileName) {
      const link = document.createElement('a')
      let blob = new Blob([data], { type: 'application/vnd.ms-excel' })
      link.style.display = 'none'
      link.href = URL.createObjectURL(blob)
      link.download = fileName //下载的文件名
      document.body.appendChild(link)
      link.click()
      document.body.removeChild(link)
    }

    直接使用如果有依赖没装,装一下依赖,没有就直接下一步

    如果直接这样用的话会出现一个什么问题呢

     文件是打不开的

    解决办法呢,就是在接口处api文件下添加“responseType: 'blob'“这句话

    export function exports(params) {
      return request({
        url: 'category/export',
        method: 'get',
        responseType: 'blob', //改变接收的值类型
        ContentType: 'application/x-www-form-urlencoded',
        params
      })
    }

    这样导出来的文件就能看了

  • 相关阅读:
    转载:SQL Server错误 2812 :未能找到存储过程 ***的解决方法
    转载:mysql5.7设置不区分大小写
    无法对数据库'XXX' 执行删除,因为它正用于复制"
    Win7 64位 部分软件和文档字体显示乱码
    转载:创建对于用户sa失败,sa无法映射到数据库
    sqlserver 用户角色权限
    转发:Nginx可视化配置工具—NginxWebUI
    docker-compose安装
    导入导出windows 防火墙规则
    python 打包pyinstaller 问题记录
  • 原文地址:https://www.cnblogs.com/yishifuping/p/15656657.html
Copyright © 2020-2023  润新知