普通的文件下载在前面的博客有提到,下面介绍Ajax实现的文件下载:
AJAX发送参数到后台后,后台处理后,传数据到前台,Ajax在success里面构建了一个from表单, 当后台传来的是文件时,自动点击提交按钮,文件就会被下载。
代码如下:
<script>
$.ajaxSetup({
data: {csrfmiddlewaretoken: '{{ csrf_token }}'},
});
$("#submit").click(function () {
$.ajax({
url: "{% url 'covid19:download'%}",
type: "POST",
data: $("#Iform").serialize(),
success: function(response, status, request) {
var disp = request.getResponseHeader('Content-Disposition');
if (disp && disp.search('attachment') != -1) { //判断是否为文件
var form = $('<form action="' + {% url "covid19:download"%} + '" method="post"></form>');
$('body').append(form);
form.submit();
}
}
})
})
</script>
参考文献:https://blog.csdn.net/junehappylove/article/details/81287679