$.ajax({
url: url,
type: "get",
// data: JSON.stringify(param),
// 向服务器发送的数据类型
contentType: 'application/json;charset=utf-8',
xhrFields: {
'responseType': 'blob'
},
success: function (result, status, xhr) {//固定三个参数
resolve(result, status, xhr);
}
}).done(function (result, status, xhr) {
// 可通过XMLHttpRequest对象,获取响应头
let filename = decodeURI(xhr.getResponseHeader('content-disposition').split(';')[1].split('=')[1]);
let imgurl = URL.createObjectURL(new Blob([result]));//神奇的方法
//download使元素可访问下载文件,参数就是文件名
$('.attachment-wrapper').append(`<a href="${imgurl}" download=${filename}>附件${index + 1}:${filename}</a><br>`);
//递归解决异步请求导致的文件加载顺序不一致的问题;
recur(attachmentFileIdsArr, customsCode, ++index);
});
Blob对象无法取到响应头的文件名
使用Ajax下载文件并处理
最新推荐文章于 2025-07-12 08:45:26 发布
本文介绍了一种使用Ajax进行文件下载的方法,并展示了如何解析服务器返回的文件名及创建可下载链接。通过设置xhrFields及responseType属性为'blob',可以确保正确处理二进制数据,同时利用getResponseHeader获取自定义头部信息。
1万+

被折叠的 条评论
为什么被折叠?



