zoukankan      html  css  js  c++  java
  • 需要加token验证的接口返回文件流下载

    没有加token之前,下载文件用的是a标签,直接下载。

    现在要求是需要在header中加入token。

     1 getDownload(urls, fileName) {
     2             var url = urls;
     3             var xhr = new XMLHttpRequest();
     4             xhr.open("get", url, true);
     5             xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
     6             xhr.setRequestHeader("access-token", store.state.token.token);
     7             xhr.send();
     8             xhr.responseType = "blob"; // 返回类型blob
     9             xhr.onload = function() {
    10                 if (this.status === 200) {
    11                     let a = document.createElement("a");
    12                     let blob = new Blob([this.response], {
    13                         type: "text/csv;charset=GBK;"
    14                     });
    15                     let objectUrl = URL.createObjectURL(blob);
    16                     a.setAttribute("href", objectUrl);
    17                     a.setAttribute("download", fileName + ".csv");
    18                     a.click();
    19                 } else {
    20                     alert("出现了未知的错误!");
    21                 }
    22             };
    23         },

    如图所示,最后解决

    浅喜似苍狗,深爱如长风
  • 相关阅读:
    事件
    DOM中对象的获得
    C# 字符串 相关操作
    两个listbox 复制
    C#窗体控件简介ListBox
    store procedure
    view_baseInfo
    不走弯路,就是捷径
    inherit
    Excel 版本对应
  • 原文地址:https://www.cnblogs.com/Zhang-jin/p/12411839.html
Copyright © 2011-2022 走看看