2010-03-01 40 views
2

我有一个表单发布到一个可触发文件下载的url。服务器是ASP.NET MVC,我写出一个CSV文件。有没有jQuery提交表单来获取文件下载?

我想要做的是有一个jQuery/JavaScript提交表单而不是表单提交按钮。

例如,我创建了一个链接,连接使用jQuery提交表单的处理程序:

$(function() { 
    $("#mylink").click(function() { 
     $("form").submit(); 
     return false; 
    }); 
}); 

我也尝试序列化的形式,做一个ajax后有同样的结果。

我得到的是请求/响应应该发生,但我没有得到文件下载(保存文件)对话框。例如,我可以通过使用fiddler来验证响应。

就好像响应发生在带外或某种情况下,如果你愿意,并行线程中,没有人在门口。

有人能发光吗? 感谢

UPDATE 出于某种原因,$("form").submit()不工作,但我可以做我的验证和预处理,然后返回true,它的工作原理。

+0

您使用的是Internet Explorer吗?你确定浏览器没有阻止你的下载吗? – Pointy 2010-03-01 18:50:15

+0

我试过IE和FireFox都有相同的结果。 – 2010-03-01 19:03:38

回答

0

如果您在窗体上调用提交方法,那么点击一个正常的提交按钮就完全一样。

使用XHR会失败(因为文件将由XHR而不是普通的浏览器响应处理程序处理),但.submit()应该可以工作。

这听起来像你只是没有设置content-disposition标题,导致浏览器将数据视为附件而不是内联文档。

+0

我正在设置内容处置好 - 就像我说的,我可以在提琴手中看到它。我得到你关于XHR位。我也不确定为什么submit()不起作用。我将仔细检查表单请求。也许它正在寻找的作为服务器启动文件下载的指标的领域尚未完成。 – 2010-03-01 19:06:39