【发布时间】:2011-03-09 15:35:26
【问题描述】:
我有点卡在以下情况:
我正在使用 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。在该 url 中,我进行了一些对象过滤,然后创建了一个 http 响应对象并将其发回。成功后,我想“将文件另存为”,但此时我不知道该怎么做。我成功地在我的 html 页面 ./test 的 div 中显示响应,但“文件另存为”从未出现。
我的 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,但是我必须将“源”作为 url 提供,这是不可能的,因为 ajax 调用会发布参数等......对此有什么帮助吗?以前我知道在某种语言中有一种叫做'IsUpload = true'的东西,太糟糕了它不在jquery ajax中......
希望收到你们的来信
【问题讨论】:
-
看来您不接受建议!
-
他的意思是你在这个网站上问了6个问题,并且没有接受提供的任何答案。网站上的机制和暗示的礼貌是,如果有任何可以被认为是正确的,您应该接受对您的问题的最佳正确答案。