问题描述
在Sencha ExtJS
中,我有一个相当复杂的前端,后端是Python/Django
。
我需要通过PDFs
后端下载Django
,该后端需要身份验证。我尝试了iFrame和window.open,但无法通过这种方法传递auth
令牌。
如何通过身份验证从后端完成pdf下载?
预先感谢
还原
解决方法
您可以尝试使用Ext.Ajax请求。像这样:
const authToken = 'SomeAuthToken';
const fileName = 'SomeFile.pdf';
const fileType = 'application/pdf';
Ext.Ajax.request({
url: './' + fileName,headers: {
'Authorization': authToken
},binary: true,success: function (response,opts) {
var windowUrl = window.URL || window.webkitURL;
var url = windowUrl.createObjectURL(new Blob([response.responseBytes],{type: fileType}));
var anchor = document.createElement('a');
anchor.href = url;
anchor.download = fileName;
anchor.click();
},failure: function (response,opts) {
console.log('server-side failure with status code ' + response.status);
}
});