使用django的Jquery Ajax调用

使用django的Jquery Ajax调用,jquery,ajax,django,upload,Jquery,Ajax,Django,Upload,我有点被以下情况困住了: 我使用ajax调用提交表单,我使用表单值在django中执行一些“查询”。当这种情况发生时,我得到了正确的queryset,它以csv的形式向我发送HttP响应。我设置了标题以及获取“另存文件为”窗口所需的所有内容。。。不幸的是,这并没有发生,因为ajax调用将响应放在一个div中 代码如下: if (vsc=='True'){ ajax_loader(); // add pdf, csv $.ajax (todo) $.ajax({ t

我有点被以下情况困住了:

我使用ajax调用提交表单,我使用表单值在django中执行一些“查询”。当这种情况发生时,我得到了正确的queryset,它以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页面上的div中显示了响应。/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,但是我必须将“源代码”作为url提供,这是不可能的,因为ajax调用会发布参数等等。。。有什么帮助吗?以前我知道在某种语言中有一种叫做‘IsUpload=true’的东西,可惜jQueryAjax中没有


希望收到你们的来信。

听起来这不应该是Ajax请求-如果你只是发布表单,那么用户将转到csv url并被提示下载文件。

听起来这不应该是Ajax请求-如果你只是发布表单,那么用户将转到csv url并被提示下载文件文件。

看起来您不接受建议!他的意思是你在这个网站上问了6个问题,但没有接受任何提供的答案。网站上的技巧和隐含的礼貌是,如果有任何问题可以被认为是正确的,你应该接受对你的问题的最佳正确答案。看起来你不接受建议!他的意思是你在这个网站上问了6个问题,但没有接受任何提供的答案。网站上的技巧和隐含的礼貌是,你应该接受你的问题的最佳正确答案,如果有任何可以被认为是正确的。它不会。。。我点击我的表格上的提交。。。我的观点是,它需要生成一个csv,它返回一个HTTPResponse对象,但它没有打开“另存文件为”,你应该怎么做?这在jquery/ajax中必须是可能的,在ExtJS中也是可能的。。。你能给我一个例子,你应该如何做知道后值(参数)可以是不同的数组,因为它是“选择框”…碎纸机是正确的。Ajax在这里是完全不相关和不必要的。。。我的内容在页面内重新格式化。。。我提交相同的表格,只有一个复选框确认是否为csv。当我返回响应时,它将返回到ajax调用,因此不会返回到外部链接。。。所以这不是无关紧要的。我为此制定了一个解决方案,我只是将一个文件设为临时文件,并在临时文件的链接上使用iframe进行ajax调用。。。对我来说,这是唯一可行的办法。太糟糕了,jquery在ExtJSit中遗漏了像IsUpload=True这样的东西它不会。。。我点击我的表格上的提交。。。我的观点是,它需要生成一个csv,它返回一个HTTPResponse对象,但它没有打开“另存文件为”,你应该怎么做?这在jquery/ajax中必须是可能的,在ExtJS中也是可能的。。。你能给我一个例子,你应该如何做知道后值(参数)可以是不同的数组,因为它是“选择框”…碎纸机是正确的。Ajax在这里是完全不相关和不必要的。。。我的内容在页面内重新格式化。。。我提交相同的表格,只有一个复选框确认是否为csv。当我返回响应时,它将返回到ajax调用,因此不会返回到外部链接。。。所以这不是无关紧要的。我为此制定了一个解决方案,我只是将一个文件设为临时文件,并在临时文件的链接上使用iframe进行ajax调用。。。对我来说,这是唯一可行的办法。太糟糕了,jquery在ExtJS中遗漏了类似IsUpload=True这样的内容