编辑:syg的答案更好。只需使用downloadjs库。
我提供的答案在Chrome上很好用,但是在Firefox和IE上,您需要此代码的一些不同变体。最好使用库。
我有类似的问题(需要传递授权标头来下载文件,因此该解决方案无济于事)。
但是基于此答案,您可以createObjectURL
使浏览器保存Fetch API下载的文件。
getAuthToken()
.then(token => {
fetch("http://example.com/ExportExcel", {
method: 'GET',
headers: new Headers({
"Authorization": "Bearer " + token
})
})
.then(response => response.blob())
.then(blob => {
var url = window.URL.createObjectURL(blob);
var a = document.createElement('a');
a.href = url;
a.download = "filename.xlsx";
document.body.appendChild(a);
a.click();
a.remove();
});
});
https://www.googleapis.com/drive/v2/files/${fileId}?alt=media