我有一个问题,就是找不到适合自己需求的解决方案。
当我单击按钮时,我接到了这个AJAX呼叫:
$.ajax({
type: 'POST',
url: '{% url "tests" %}',
traditional: true,
data : {'mydata': list,"excel": "" },
success: function (data, textStatus) {
//Test
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("some error " + String(errorThrown) + String(textStatus) + String(XMLHttpRequest.responseText));
}
});
在views.py中:
if request.method == "POST" and request.is_ajax():
if 'excel' in request.POST:
data = request.POST.getlist('mydata')
if data:
tests = Test.objects.filter(pk__in=data)
response = HttpResponse(content_type='application/vnd.ms-excel')
response['Content-Disposition'] = 'attachment; filename=Test.xlsx'
xlsx_data = WriteToExcelTests(tests)
response.write(xlsx_data)
return response
如果我不使用AJAX(因为在我不使用AJAX的情况下还有另一种情况)并且文件已在浏览器中下载,则此方法很好,但是在这种情况下我无法下载文件,它不能任何错误,但不会下载文件。
如何强制它下载文件?
答案 0 :(得分:0)
我遇到了同样的问题。多亏了这个答案https://stackoverflow.com/a/47197970/9446730和一点点的搜索,我才这样解决了它:
putImageData
我们无法使用blogpost中提到的Jquery Ajax下载文件。