我有点陷入以下情况:
我正在使用ajax调用来提交表单,我使用表单值在django中执行一些“查询”。当发生这种情况并且我得到了正确的查询集时,它以csv的形式向我发送了一个HttP响应。我设置了标题以及将“保存文件作为”窗口所需的所有内容...不幸的是,这不会发生,因为ajax调用将响应放在div中。
这是代码:
if (vsc=='True'){
ajax_loader();
// add pdf, csv $.ajax (todo)
$.ajax({
type: "POST",
url: "./test",
dataType: 'text',
success: test,
data: {host: ho, log: lo, severity: se, datetimestart: dts, datetimeend: dte, enabled: ena, csv: vsc, pdf: fdp}
});
所以在这个ajax函数里面调用url ./test。在那个网址里面我做了一些对象过滤,我做了一个http响应对象并将其发回。在成功的时候我想把'保存文件',但是此刻我不知道如何做到这一点。我成功地在我的html页面上显示了响应./test但是'保存文件'从未显示过。
我的django观点:
def export_csv(request,queryset)
# do some filtering on queryset and create a csv
response = HttpResponse(''.join(csv_export), mimetype='text/csv')
response['Content-Disposition'] = 'attachment; filename=customreportexport.csv'
return response
这是我的观点,一切都应该是正常的,我认为这真的是ajax调用...'成功'我必须做一些事情,所以它弹出'保存文件为',只有我不知道如何。我已经尝试了一些iframe但是我必须将'source'作为url给出,这是不可能的,因为ajax调用执行参数等的帖子...对此有什么帮助吗?以前我知道在某种语言中有一种叫做'IsUpload = true'的东西,太糟糕了,它不是在jquery ajax ....
希望收到你们的消息
答案 0 :(得分:3)
听起来这不应该是一个Ajax请求 - 如果您只是POST该表单,那么用户将转到csv url并被提示下载该文件。