当服务器返回gzip文件时,我如何在react中下载文件



我想从服务器下载一个gzip文件。我有一个API,它返回一个gzip文件。因此,我必须从React调用那个API,并从客户端下载gzip文件。

这是我称之为API的代码:

const res = await API.get(`${baseUrl}/${advId}/${type}`, {
params: { campaign_id: id, start_date: startDate, end_date: endDate },
});
const data = res.data;
const url = URL.createObjectURL( new Blob(data));
const link = document.createElement('a');
link.href = url;
link.click();

已尝试将服务器的响应转换为Blob。但错误为未处理的拒绝(TypeError(:构造"Blob"失败:无法将提供的值转换为序列。响应数据应该是一个gzip文件。

我能想到你可以尝试的两件事:

  • 如果使用axios,请确保将responseType设置为arrayBufferaxios.get(`${baseUrl}/${advId}/${type}`, { responseType: 'arraybuffer' })
  • 使用数组创建Blob,例如new Blob([response.data])

相关内容

  • 没有找到相关文章

最新更新