我有一个 ajax 函数,它返回一个 xlsx 文件。但我读到,出于安全原因,使用 ajax 无法自动开始下载。所以我想将 xlsx 文件保存在一个变量中,并制作一个带有“准备下载”的按钮。我想知道这是否可能。
查看返回 xlsx 文件的函数。
return HttpResponse(save_virtual_workbook(wb), content_type='application/vnd.ms-excel')
java脚本
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();
});
以上仍然没有统计下载。
最佳答案
出于安全原因,您一直建议执行的操作是不可能的。您可以做的是使用链接到该文件的 anchor 标记。
这是一个我动态创建该 anchor 并单击它的示例
var link = $("<a></a>");
link.href = xlsxFile;
link.download = true;
link.click();
关于javascript - 将xlsx文件保存在变量中,然后点击下载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40198282/