gpt4 book ai didi

javascript - 转换后的 blob 正在获取格式不正确的文件

转载 作者:行者123 更新时间:2023-12-04 21:03:16 26 4
gpt4 key购买 nike

我正在尝试在下载空文件时向用户发送警报(在这种情况下,服务器会发回数字 0:

$http.get(service)
.success(function (response) {
if (response === parseInt(response, 10)) {
alert("That query had no results");
$("#dialog").dialog("close");
}
else {
var blob = new Blob([response], { type: "application/vnd.ms-excel" });
var objectUrl = URL.createObjectURL(blob);
$("#dialog").dialog("close");
window.location = objectUrl;
}
});

该文件下载正常,但是当我打开它时,我从 excel 收到“文件格式错误消息”。我知道 excel 文件可以正常下载,因为:
window.location = service

工作得很好。

我都试过了:
application/vnd.ms-excel
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

文件类型。两者都不起作用。提前致谢。

编辑:我想也许我需要得到原始响应(对于这个 Angular $http 服务),所以我尝试了:
http.get(service, {
transformResponse:
function (d, h) {
return d;
}
})
.success(function (response) {
..same as above
});

仍然无法正常工作。事实上,我在 d 上设置了一个断点,看起来很多“无法识别”的字符都变成了问号(我将 d 与我的网络选项卡进行了比较。)在网络选项卡中,这些字符是一种方式,但是当我检查 d 时它们已更改为问号。

最佳答案

$http.get 返回的响应是一个包含 header 的对象,您不能直接从中形成 blob。您可以像这样访问服务返回的二进制内容:

var blob = new Blob([response.data], { type: "application/vnd.ms-excel" });

关于javascript - 转换后的 blob 正在获取格式不正确的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31523061/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com