gpt4 book ai didi

jquery - 将 django HttpResponse 作为文件返回,而不是 $.ajax() post 中的普通响应正文

转载 作者:行者123 更新时间:2023-12-01 03:21:00 25 4
gpt4 key购买 nike

我正在尝试生成报告并将其作为文件返回给请求客户:

客户端非常简单:

 $.ajax({
url: '/reports-get/',
data: data_to_submit,
type: 'GET',
statusCode: {
200: function(e){},
500: function(e){}
}
});

服务器端是:

result = StringIO.StringIO()
pdf = pisa.pisaDocument(StringIO.StringIO(html.encode('UTF-8')), result, encoding='UTF-8', link_callback=fetch_resources)
response = HttpResponse(result.getvalue(), mimetype='application/pdf')
response['Content-Disposition'] = 'attachment; filename={0}'.format(filename)
result.close()

我正在使用 Chrome/FF 进行测试,结果是:

我看到以下回复:

Request URL:http://localhost:8000/reports-get/?csrfmiddlewaretoken=e70579b0ad62d3744133dec4d51c98cc&delivery_type=pdf&report_name=consolidated_report&group_by=managers&projects_to_display=all
Request Method:GET
Status Code:200 OK

和响应 header :

Content-Disposition:attachment; filename=consolidated report 2012-04-03 grouping by managers2012-04-03-02-02.pdf
Content-Encoding:gzip
Content-Length:83312
Content-Type:application/pdf
Date:Mon, 02 Apr 2012 22:02:48 GMT
Server:WSGIServer/0.1 Python/2.7.1
Vary:Accept-Encoding, Cookie

以及响应正文中的文件:

%PDF-1.4
%���� ReportLab Generated PDF document http://www.reportlab.com
% 'BasicFonts': class PDFDictionary
1 0 obj
...
startxref
184036
%%EOF

但它不会保存文件,也不会提示我是否需要保存。我有什么遗漏的吗?

最佳答案

一旦您以编程方式请求它,浏览器就会退出,否则您会遇到各种令人讨厌的行为。使其将其视为下载的一种方法是制定您需要的 URL,然后为其设置 window.location

关于jquery - 将 django HttpResponse 作为文件返回,而不是 $.ajax() post 中的普通响应正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9984530/

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