为了账号安全,请及时绑定邮箱和手机立即绑定

通过js向授权的asp.net web api请求XLSX文件

通过js向授权的asp.net web api请求XLSX文件

C#
慕哥9229398 2021-12-05 17:05:13
我有 ajax 调用我的 web api 来获取调用时生成的 xlsx 文件。xlsx 文件位于我知道是正确的内存流中,因为我直接从服务器下载了它并且没有问题。但是,当我尝试通过浏览器下载文件时,它说该文件无效。我正在使用 downloadjs 下载数据。我如何返回流 public HttpResponseMessage Function_Name() {        var stream = getStream();        HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);        result.Content = new StreamContent(stream);        result.Content.Headers.ContentType =            new MediaTypeHeaderValue("application/octet-stream");        return result;    }我如何获得流$.ajax({ url: "urlToData", headers: {                'Authorization': 'Authorization'            },         success: function (data) { download(data, "test.xlsx"); } });当我运行此代码时,我得到一个文件,但是该文件无法在 excel 中读取。该文件也是 15.3 KB,其中直接从服务器下载的功能文件实际上是 10.0kb
查看完整描述

1 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

我感到绝望并尝试了这个:http : //www.henryalgus.com/reading-binary-files-using-jquery-ajax/


当我使用 XMLHttpRequest() 时它工作正常。


var xhr = new XMLHttpRequest()


xhr.open('GET', 'url', true);

xhr.setRequestHeader('Authorization', 'Authorization');

xhr.responseType = 'blob';


xhr.onload = function(e) {

    if(this.status == 200) {

        var blob = this.response;

        download(this.response, "test.xlsx")

    }

}


xhr.send();


查看完整回答
反对 回复 2021-12-05
  • 1 回答
  • 0 关注
  • 190 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信