我正在使用MVC 3.我在服务器上的Action Method(称为GetCSV())中创建了一个csv文件。这是一个[HttpPost]操作方法。我想要做的是将该csv文件作为可下载文件直接发送到网络浏览器。我得到这个使用window.open(),然而,这是一个本质上的GET方法,我需要使用POST的东西,因为我需要传递很多参数。理想情况下,我想使用Ajax,因为我可以使用这种方法轻松地将大量参数传回服务器。关于如何使用Ajax调用将参数传递给服务器,然后以某种方式将响应打开为可下载文件的任何想法?我会很感激任何建议!如何将Ajax响应作为可下载文件发送到Web浏览器客户端?
2
A
回答
1
我的解决方案是使用Microsoft的MVC 3 Ajax Form而不是JQuery的Ajax。几个月前,我偶然发现,如果您没有为MVC Ajax表单指定“成功”函数,它只是将文件发送到Web客户端进行下载。这是我需要发生的事情。我试过了,它的确按照预期工作。
0
无法使用JavaScript(至少以所有浏览器支持的标准方式)或ajax将文件保存到本地文件系统。这就是为什么推荐的方法是不使用ajax,通常是通过GET。
然而,您可以通过jquery的.param()将带有参数的json对象转换为URL,如this answer所示。
如果您确实想要探索javascript替代方案,也许您可以查看仅支持铬AFAIK的FileSystem API。
+0
几个月前,我发现纯粹的意外,如果你没有指定一个“成功”函数来捕获Ajax响应,那么不显眼的Ajax(内置于mvc 3)直接发送json文件到页面供下载。我会在星期一试一试,让你们知道它是否有效。当然,除非有人在此之前尝试过。 ;) – TheDude 2013-04-07 03:19:27
相关问题
- 1. 如何停止浏览器将“application/json”AJAX响应作为文件下载
- 2. 如何将二进制blob发送到客户端浏览器?
- 3. Web服务器如何将文件发送到客户端
- 4. 下载文件到客户端浏览器,在卡住到Response.End()
- 5. 我需要从服务器发送文件到浏览器(Web客户端)
- 6. 如何从客户端(浏览器)向客户端(浏览器)发送客户端的SSL/TLS证书
- 7. PHP客户端浏览器下载
- 8. 从Google Drive下载文件并通过Google Drive python客户端将文件作为HttpResponse发送到客户端
- 9. 如何从浏览器客户端发送HTML电子邮件?
- 10. ASP.NET将Cookie发送到客户端浏览器
- 11. 如何将数据推送到客户端浏览器php
- 12. 如何从Google App Engine的python脚本中将字符串作为文件发送到浏览器客户端
- 13. 如何发送文件到浏览器进行下载?
- 14. Perl如何发送zip文件到浏览器下载PSGI
- 15. 发送浏览器响应
- 16. 如何将Flex模块加载到客户端浏览器中?
- 17. 将数据推送到客户端浏览器的Web应用程序
- 18. Dotnet Web客户端超时,但浏览器工作文件为JSON Web服务
- 19. 将Excel文件发送到客户端
- 20. 将XML文件发送到客户端
- 21. 将文件作为附件发送到浏览器
- 22. 播放发送HTML到客户端,但客户端浏览器不呈现它
- 23. 浏览器中的websocket客户端可以发送标题吗?
- 24. 如何将文件发送到客户端以便下载对话框打开?
- 25. sftp文件浏览器客户端
- 26. 如何发送客户端的多个文件以下载
- 27. 如何从服务器(作为Web代理)读取HTTP响应并向客户端发送响应
- 28. 在服务器端读取多行文件并通过ajax响应将行发送到浏览器
- 29. 将文本发送到其他客户端的浏览器有哪些漏洞?
- 30. 将文件下载到浏览器(ASP.NET)
难道你不能返回一个路径? – aIKid 2013-04-06 23:24:33
好吧,我实际上并没有将csv保存在服务器磁盘上。它全部在服务器内存中生成。最后,我想这样做,因为保存到磁盘将使其更具可扩展性,但现在它正在内存中完成。 – TheDude 2013-04-06 23:31:16