前端异步+token下载文件

首先,需要登录的时候把token塞入localStorage里面

localStorage.setItem('token', data.token);

再写一个公用方法来下载文件(基于ts)

逻辑就是先发一个请求,返回成功后,创建一个a标签,然后点击它

// 下载文件
export const download = (link: string, filename: string) => {
  const xhr = new XMLHttpRequest();
  // POST请求,link,async(是否异步)
  xhr.open("POST", link, true);
  // //设置请求头参数的方式,如果没有可忽略此行代码
  xhr.setRequestHeader("token", window?.localStorage?.getItem("token"));
  // //设置响应类型为 blob
  xhr.responseType = "blob";
  // //关键部分
  xhr.onload = function() {
    //   //如果请求执行成功
    if (this.status === 200) {
      const blob = this.response;
      // 创建一个a标签
      const a = document.createElement("a");
      // blob.type = "application/octet-stream";
      // 创键临时url对象
      const url = window.URL.createObjectURL(new Blob([blob]));
      a.href = url;
      a.download = filename;
      // 点击a标签
      a.click();
      // 释放之前创建的URL对象
      window.URL.revokeObjectURL(link);
    }
  };
  // //发送请求
  xhr.send();
}

以下为测试(基于React)

		<Button
            onClick={() => {
        // currentPage、pageSize是分页信息,id、name是查询信息
              const link = `localhost:8080/url?currentPage=${searchParams.currentPage}&pageSize=${searchParams.pageSize}${searchParams.id !== undefined ? `&id=${searchParams.id}` : ""}${searchParams.name !== undefined ? `&name=${searchParams.name}` : ""}`
              download(link, "信息.xlsx")
            }}
            key="download"
            target='_blank'
          >
            <CloudDownloadOutlined /> 导出本页
          </Button>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring Boot Token 是一个用于身份验证和授权的令牌。根据引用,根据发布时间,可以将 token 分为新生 token 和老年 token。新生 token 是距离发布不超过2个小时的 token,而老年 token 是距离发布2-3个小时的 token。 要修改 token 的过期时间,可以根据引用中的说明,在 application.yaml 文件中将过期时间调小。在该文件中找到 token 配置部分,可以看到 privateKey、yangToken 和 oldToken 字段。可以修改 yangToken 和 oldToken 的值来设置不同类型 token 的过期时间。 在 Spring Boot 中使用 token,需要定义 Controller 类来处理请求。根据引用提供的示例代码,需要创建一个 TestController 类,并在其中定义相应的请求处理方法。对于认证登录功能,可以在 login 方法中生成 JWT 字符串作为 token,并将其返回给客户端。 总结起来,Spring Boot Token 是用于身份验证和授权的令牌,可以根据发布时间分为新生 token 和老年 token。要修改 token 的过期时间,可以在 application.yaml 文件中相应字段进行设置。使用 Spring Boot Token 需要定义 Controller 类处理请求,并在相应方法中生成和返回 token。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [SpringBoot 集成token实践详解](https://blog.csdn.net/jarvan5/article/details/113789133)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [springboot中使用token](https://blog.csdn.net/Cidaren/article/details/118759256)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我认不到你

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值