我有一个ajax函数,它返回一个xlsx文件。但出于安全考虑,我读到你用ajax无法自动启动下载。所以我想将xlsx文件保存在变量中,然后创建一个“准备下载”的按钮。我想知道这是否可能。
查看返回xlsx文件的函数。
return HttpResponse(save_virtual_workbook(wb), content_type='application/vnd.ms-excel')
javacript
var xlsxVar = ''
function ajaxGetCSV() {
$.ajax({
url : "{% url 'manager:file' %}",
type : "POST",
data : { csrfmiddlewaretoken : '{{ csrf_token }}' },
success : function(data) {
xlsxVar = data
},
error : function(xhr,errmsg,err) {
console.log(xhr);
console.log(errmsg);
console.log(err);
}
});
};
点击一些功能开始下载。
更新
<div class='ready'>
test
</div>
$(".ready").click(function(){
var link = $("<a></a>");
link.href = xlsxFile;
link.download = true;
link.click();
});
上述内容仍无法下载。
答案 0 :(得分:1)
出于安全原因,您无法提出建议。你可以做的是使用链接到文件的锚标记。
以下是我动态创建该锚点并单击它的示例
var link = $("<a></a>");
link.href = xlsxFile;
link.download = true;
link.click();