无法在create-react-app中看到Content-Disposition标头



我有一个create-react-app,从express服务。Express仅作为应用程序的代理。应用程序逻辑在CRA中。

我正在尝试调用API并下载文件。api返回一个"content - disposition";头文件,其中包含文件名。我无法在调用中检索标题。

当我在Postman/chrome-dev-tools中调用API时,我可以看到可用的头文件。

请参阅下面我的代码。由于res.headers为空,文件名代码被注释掉。

let filename = 'test-file-name'; // <--- default file name
const output = fetch(transactionReportPath(), {
headers: {
accept: 'text/csv',
Authorization: `Bearer ${getToken()}`
}
})
.then((res) => {
console.log(res.headers) // <---- empty object
// filename = res.headers.get('Content-Disposition').split(";")[1]
return res.blob()})
.then((blob) => {
const file = window.URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = file;
a.download = filename;
document.body.appendChild(a); 
a.click();
a.remove();
});

已解决此问题。服务器响应中缺少一个报头。

response["Access-Control-Expose-Headers"] = "Content-Disposition"

在响应中添加此头开始暴露丢失的文件名。

相关内容

  • 没有找到相关文章

最新更新