如何将Ajax响应作为可下载文件发送到web浏览器客户端
How can an Ajax response be sent to the web browser client as a downloadable file?
我使用MVC 3。我在服务器上的Action Method中创建了一个csv文件(称为GetCSV())。它是一个[HttpPost]动作方法。我要做的是把这个csv文件作为可下载文件直接发送到网络浏览器。我使用window.open()来工作,然而,这是一个本质上的GET方法,我需要一些利用POST的东西,因为我需要将很多参数传递给它。理想情况下,我希望使用Ajax,因为使用这种方法可以轻松地将大量参数传递回服务器。关于如何使用Ajax调用将参数传递给服务器,然后以某种方式将响应打开为可下载文件,有什么想法吗?我很感激任何建议!
我的解决方案是使用微软的MVC 3 Ajax表单而不是JQuery的Ajax。几个月前,我偶然发现,如果你没有为MVC Ajax表单指定一个"成功"函数,它只是将文件发送到web客户端供下载。这就是我想要的。
不能使用javascript(至少不能以所有浏览器支持的标准方式)或ajax将文件保存到本地文件系统。这就是为什么推荐的方法是不使用ajax,通常通过GET来实现。
然而,你可以通过jquery的.param()将带有参数的json对象转换为URL,如下面的答案所示。
如果你确实想探索javascript的替代方案,也许你可以看看只有chrome AFAIK支持的文件系统API
相关文章:
- 如何在visualstudio中调试web api时编辑javascript文件
- node.js将字符串转换为要上传到Web服务器的文件
- Web 地址虚拟目录会断开外部 JavaScript 链接,因此找不到文件
- 使用angularjs和node.js时的Web应用程序文件夹结构
- Project和作为web应用程序发布的多个doGet()脚本文件——需要澄清
- 用于在web服务器中上载的文件路径
- Web浏览器扩展名通用文件
- 基于Web的绘画编辑器,用于基于PSD的文件
- Ruby on Rails 4:在 Rails Web 应用程序中添加 Javascript 文件时遇到问题
- “无法下载此文件”时尝试在主屏幕Web应用程序中访问ics文件
- 在Asp.net的空网站中,如何改变"Web.config”;使内容(.js)文件显示在浏览器中,而不是下载
- 在Android Web视图中使用静态文件作为模板
- 我可以在web应用程序的客户端使用.env文件吗
- 在单独的js文件中访问web配置
- web应用程序是否可以打开客户端上存在的pdf文件
- Web Storm 9.0.3 typescript文件观察程序不工作
- 当SVG是单独的文件时,剪辑路径/web工具包掩码有效,但在内联时无效
- 如何在java web应用程序中捕获关闭打开的excel文件的事件
- 在 Redux 缩减器中扩展或克隆文件 Web API 对象以支持其他属性
- 在选择文件(web)后显示图像文件名