2010-03-20 96 views
3

我使用Ajax JQuery命令调用一个PHP脚本,该脚本生成一个CSV文件并返回该文件的链接供用户下载。返回自动下载JQuery Ajax调用

我想通过自动开始下载使用户更友好,让用户看到浏览器的“保存或打开”窗口,而不必单击下载链接。

我猜我需要以某种方式更改Ajax成功回调函数中的头文件?

我不确定我应该提交我的搜索,或者即使这是可能的。

谢谢!

+2

听起来像你真的想在这种情况下*不*执行AJAX,并将文档位置设置为查询字符串以生成该CSV。 (或者,如果您喜欢弹出窗口,请在CSV位置弹出一个新窗口/标签。) – 2010-03-20 00:16:09

+1

以AJAX的方式执行此操作,从服务器检索“url”并将文档位置设置为“url” – 2010-03-20 00:21:24

+1

与krio同意。最佳做法是不做异步回发,但更新网址。这也是您的用户可能想要保存该链接并稍后下载而不返回到该页面。 – XGreen 2010-03-20 00:22:04

回答

3

你可以这样做最简单的(也可能是唯一的)服务器端,不需要AJAX,这样的:如果关闭,它已经相当长的一段

<?php 
header('Content-type: "text/csv"; charset="utf8"'); //adjust encoding if needed 
header('Content-disposition: attachment; filename="fileNameHere.csv"'); 
//output document in response 
?> 

有人觉得免费的,如果语法编辑此因为我有一个PHP项目。

+0

谢谢!这让我走上了正确的道路! – krx 2010-03-20 00:44:16