gpt4 book ai didi

jquery - 使用 Ajax 在 Django 中打开 Reportlab 生成的 PDF 文件

转载 作者:行者123 更新时间:2023-12-01 04:10:43 24 4
gpt4 key购买 nike

我使用 Reportlab 和 Django 来生成在客户端计算的数据的 pdf。

选择 Ajax 是因为客户端有重要的数据需要传输以生成 pdf。

$.ajax({
type:'POST',
url:document.URL + '/export',
data: JSON.stringify(data),
dataType:'json',
contentType:'application/pdf',
success:function(data){
// Question 1. What should I insert here to download pdf?
},
error:function(e){
...
}
});

这是 view.py

def export(request, *args, **kwargs):

// Perform Ajax check
...

response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename="essay.pdf"'

p = canvas.Canvas(response, bottomup=0)
data = json.loads(request.body)

p.drawString(100, 100, "Hello world.")
p.showPage()
p.save()
return response

问题 2. 我无法让 ajax 成功完成其请求,只能调用错误回调。这个问题提到了同样的问题

ReportLab in Django

但没有得到答复。我错过了什么吗?

最佳答案

我的解决方案是使用标准表单而不是ajax。

您可以在 html 中放置一个表单(或使用 JS 构建它)

<form id="my_form" action="export" method="post">
<input id="my_form_data" type="hidden" name="data" />
</form>

然后,当你想要发送数据时,使用 JS:

$('#my_form_data').value(JSON.stringify(data));
$('#my_form').submit();

关于jquery - 使用 Ajax 在 Django 中打开 Reportlab 生成的 PDF 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20762829/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com