使用 AJAX 下载 CSV
Download a CSV with AJAX
我正在使用C#和JavaScript。 我的目标是发送一个 Ajax 请求,导致下载 CSV 文件。 CSV 将在服务器端的 ashx 页面中生成。 目前,应用程序能够下载 CSV,但使用表单而不是 AJAX 请求,但后端代码是相同的。
这是我失败的 ajax 请求:
$.ajax({
url: "myDir/x.ashx/exportAllData",
type: 'POST',
data: {
id:8
},
success: function(ajaxResult){
console.log(ajaxResult);
}
});
下面是确实有效的 Form 方法:
var $form = $(document.createElement('form'))
.attr({
action: 'myDir/x.ashx/exportAllData',
method: 'POST'
})
.css('display', 'none')
.appendTo('body');
$form.submit();
$form.empty().remove();
下面是处理程序 (C#) 中的代码,对于上述两种情况都是相同的:
else if(action == "exportalldata")
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("test1,test2,test3,test4,test5");
context.Response.Clear();
context.Response.ContentType = "application/csv";
context.Response.AddHeader("Content-Disposition", "attachment;filename=data.csv");
context.Response.Write(sb.ToString());
context.Response.End();
}
简短的回答是你不能。 浏览器无法通过 ajax 下载文件。 它必须通过表格邮寄完成。
您可以修改服务器端代码以输出到 webroot 中的静态文件,并返回指向它的 URL。然后,您可以将window.location.href
设置为 URL。
如果你自己填充日期,你可以使用它
jQuery插件,用于请求类似Ajax的文件下载
链接中的示例:
$.download('/export.php','filename=mySpreadsheet&format=xls&content=' + spreadsheetData );
相关文章:
- PERL-下载CSV文件不完整
- 如何将CSV数据从变量下载到CSV文件
- Safari 5.1.7下载文件名未知的csv文件
- CSV、PDF、Excel文件在dataTables的导出扩展中作为blob下载
- Json到CSV下载,可以在chrome中工作,但不能在IE浏览器中工作
- 如何用javascript下载巨大的CSV文件
- R: 从网站下载.csv
- 从mvc web api httpresponse生成csv,并通过angularjs接收下载
- 从angular js中的webapi下载csv文件
- 可通过Ajax下载CSV文件
- JavaScript到.csv的下载失败:;失败.无文件”;
- 通过网站按钮单击自动下载每日csv文件
- 通过jquery/javascript下载php genereted csv文件
- 使用窗口对象下载 CSV 文件
- 使用 AJAX 下载 CSV
- ExtJS 4.2 将网格数据导出到可下载的 CSV 文件
- 在满足条件时下载 CSV
- 谷歌可视化数据表CSV下载
- Datatables csv下载将自定义列添加到文件中
- 捕获csv下载作为数组加载而不是使用Google Script