Skip to content

Blazor中的下载函数在手机浏览器中不能正常下载文件 #655

Description

@pelva

应该是XMLHttpRequest的问题,使用fetch函数可以下载,可惜也不维护了

download: function (url, data, method = "POST") { var xhr = new XMLHttpRequest(); xhr.open(method, url, true); // 也可以使用POST方式,根据接口 xhr.responseType = "blob"; // 返回类型blob xhr.setRequestHeader('content-type', 'application/json'); xhr.setRequestHeader('Authorization', 'Bearer ' + localStorageFuncs.get("wtmtoken")); xhr.onload = function () { if (this.status === 200) { var fname = this.getResponseHeader("content-disposition"); var filename = ""; if (/filename\*=UTF-8''(.*?)($|;|\s)/.test(fname)) { filename = RegExp.$1; } else if (/filename=(.*?)($|;|\s)/.test(fname)) { filename = RegExp.$1; } filename = decodeURI(filename); var blob = this.response; var reader = new FileReader(); reader.readAsDataURL(blob); reader.onload = function (e) { var a = document.createElement('a'); a.download = filename; a.href = e.target.result; document.body.append(a); a.click(); a.remove(); } } }; // 发送ajax请求 xhr.send(data) }

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions