ajax post下载文件流

ajax post下载文件流,第1张

Form里面有你很多的input

其实只要在你Form里面隐藏一个iframe

<iframe name="downloadFrame" style="display: none" frameborder="0"></iframe>

然后 提交表单 把target指向这个Iframe就行了

$("#formId").attr("action","下载的URL")

$("#formId").attr("target","downloadFrame")//iframe的名字

$("#formId").submit()

Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术

Ajax = 异步 JavaScript 和 XML(标准通用标记语言的子集)。

Ajax 是一种用于创建快速动态网页的技术。

Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。[1]

通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

传统的网页(不使用 Ajax)如果需要更新内容,必须重载整个网页页面。

该技术在 1998 年前后得到了应用。允许客户端脚本发送HTTP请求(XMLHTTP)的第一个组件由Outlook Web Access小组写成。该组件原属于微软 Exchange Server,并且迅速地成为了 Internet Explorer 4.0 的一部分。部分观察家认为,Outlook Web Access 是第一个应用了 Ajax 技术的成功的商业应用程序,并成为包括Oddpost 的网络邮件产品在内的许多产品的领头羊。但是,2005 年初,许多事件使得 Ajax 被大众所接受。Google 在它著名的交互应用程序中使用了异步通讯,如Google、Google 地图、Google 搜索建议、Gmail等。Ajax 这个词由《Ajax: A New Approach to Web Applications》[2]  一文所创,该文的迅速传播加强了人们使用该项技术的意识。另外,对Mozilla/Gecko 的支持使得该技术走向成熟,变得更为易用。

Ajax 前景非常乐观,可以提高系统性能,优化用户界面。Ajax 现有直接框架 AjaxPro,可以引入 AjaxPro.2.dll 文件,可以直接在前台页面 JavaScript 调用后台页面的方法。但此框架与表单验证有冲突。另外微软也引入了 Ajax 组件,需要添加 AjaxControlToolkit.dll 文件,可以在控件列表中出现相关控件。

前端js改成这样试试:

var form = $("<form></form>").attr("action", "/cgi-bin/rpt_data_toExcel.py").attr("method", "post")

form.append($("<input></input>").attr("type", "hidden").attr("name", "fileName").attr("value", "results.xls"))

form.appendTo('body').submit().remove()

对于这种方式实现下载,不是很熟悉,我说说我的看法,ajax的返回类型是什么?难道有文件类型?通常这种做法,我想应该是点击一个按钮直接执行下载,不需要使用ajax就能下载。你要知道,ajax的返回类型可没有文件类型,我通常的做法是返回json的数据类型,这种做法返回存放文件的path,前端处理下这个path就可以了!如果需要,明天上班给你详细举例说说!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/6046689.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-12
下一篇 2023-03-12

发表评论

登录后才能评论

评论列表(0条)

保存