jquery+ajax+poi导不出EXCEL..

问题描述

var _exportExcel = function() {$.ajax({type: "GET",url : "boQueryAction!queryOrderListExportInfo.action",data : {"g_paramInfo":JSON.stringify(g_paramInfo)},cache : false,async : false,contentType:"application/json",error : function() {alert("导出失败");}}); JS代码如上 后端代码没问题,我已经response.setContentType("application/vnd.ms-excel;");response.setHeader("Content-Disposition", "attachment;filename=" + templateName + ".xls");都写好了,而且我断点看了,后台已经把HSSFWorkbook对象的EXCEL数据都准备好了并且已经输出//得到输出流out = response.getOutputStream();workBook.write(out);//刷新输出流但是点击导出按钮,不报错误,后台有查询数据的日志,也没有错.就是没有任何反应所以想请教一下各位,前台ajax这种调用方式,是不是打不开EXCEL? 问题补充:<div class="quote_title">suziwen 写道</div><div class="quote_div">在浏览器安全范围内无法直接通过AJAX实现文件下载<br /><br /><br />你直接设置 location.href='boQueryAction!queryOrderListExportInfo.action';或者通过隐藏的iframe把下载地址赋值给src</div><br /><br /><br />您好,不能直接打开这个action,我主要是还要传入这个json字符串<br />data : {"g_paramInfo":JSON.stringify(g_paramInfo)},&nbsp;&nbsp; <br />不知道怎么实现呢

解决方案

data : {"g_paramInfo":JSON.stringify(g_paramInfo)}, 那就是你自己在页面里先创建一个FORM(用DIV隐藏起来),这个FORM里包含g_paramInfo文本域,具体值就是你的JSON.stringify(g_paramInfo),这个FORM的ACTION就是boQueryAction!queryOrderListExportInfo.action,要下载时,就通过JQUERY把这个FORM提交上去,记得对这个FROM的TARGET设置成_blank,让他在新窗口打开
解决方案二:
引用引用{"g_paramInfo":JSON.stringify(g_paramInfo)},这个提交时实际也是以健值方式提交的,可以直接拼成参数附加到 url后面"***.action?g_paramInfo="+JSON.stringify(g_paramInfo)直接拼成参数不是很好,有可能g_paramInfo里面的值是中文,再或者长度超出url地址最大长度时就不好使了引用g_paramInfo如果值比较简单,是可以这样做的,也方便 很对,视具体情况,也可以在iframe中提交信息的
解决方案三:
g_paramInfo如果值比较简单,是可以这样做的,也方便
解决方案四:
引用{"g_paramInfo":JSON.stringify(g_paramInfo)},这个提交时实际也是以健值方式提交的,可以直接拼成参数附加到 url后面"***.action?g_paramInfo="+JSON.stringify(g_paramInfo)直接拼成参数不是很好,有可能g_paramInfo里面的值是中文,再或者长度超出url地址最大长度时就不好使了
解决方案五:
引用问题补充:suziwen 写道在浏览器安全范围内无法直接通过AJAX实现文件下载 你直接设置 location.href='boQueryAction!queryOrderListExportInfo.action';或者通过隐藏的iframe把下载地址赋值给src您好,不能直接打开这个action,我主要是还要传入这个json字符串 data : {"g_paramInfo":JSON.stringify(g_paramInfo)}, {"g_paramInfo":JSON.stringify(g_paramInfo)},这个提交时实际也是以健值方式提交的,可以直接拼成参数附加到url后面"***.action?g_paramInfo="+JSON.stringify(g_paramInfo)
解决方案六:
在浏览器安全范围内无法直接通过AJAX实现文件下载你直接设置 location.href='boQueryAction!queryOrderListExportInfo.action';或者通过隐藏的iframe把下载地址赋值给src
解决方案七:
你要用iframe提交请求,才能获取响应流
解决方案八:
废话,文件流怎么能用ajax处理?不用那么麻烦的,直接打开boQueryAction!queryOrderListExportInfo.action就有下载提示了

时间: 2024-08-06 06:33:57

jquery+ajax+poi导不出EXCEL..的相关文章

Jquery ajax请求导出Excel表格的实现代码_jquery

直接贴代码吧 $("#btn-export").click(function(){ var exportExcel = "export_excel"; dataParams[exportExcel] = 1; var params = $.param(dataParams); var url = host+"&"+params; $('<form method="post" action="' + ur

jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)_jquery

弹出层主要用于展示丰富的页面信息,还有一个更好的应用是弹出表单层丰富交互应用.常见的应用有弹出登录表单层,用户提交登录信息,后台验证登录成功后,弹出层消失,主页面局部刷新用户信息.本文我们将给大家介绍如何使用jQuery+Ajax+PHP弹出层异步登录的应用. 效果展示        源码下载 HTML 由于本例UI部分使用了Bootstrap,以及使用jQuery插件,因此需要事先载入相关文件,推荐大家使用相关的CDN资源. <link rel="stylesheet" hre

jQuery+Ajax+PHP弹出层异步登录的例子

弹出层主要用于展示丰富的页面信息,还有一个更好的应用是弹出表单层丰富交互应用.常见的应用有弹出登录表单层,用户提交登录信息,后台验证登录成功后,弹出层消失,主页面局部刷新用户信息.本文我们将给大家介绍如何使用jQuery+Ajax+PHP弹出层异步登录的应用. 关于弹出层效果,我们继续使用本站helloweba上篇文章中写的弹出层插件-hwLayer.更多的灵活性体现在绑定弹出层上的表单提交按钮事件,然后进行ajax异步交互,最后局部刷新主页面,大家可以先看demo演示.阅读本文,您除了需要具备

当jquery ajax遇上401请求

jquery ajax是个很常用接口,而在请求时候,可能存在响应401的情况(身份认证过期或未登录),比较容易出现在混合应用上,如何进行身份认证,重发失败请求,还是值得注意的. ajax请求有两种方式 1. 回调 最常写的方式,成功失败处理以回调方式传入. $.ajax({ ajax参数... success : xxxxxx error: xxxxxx }); 2. Deferred方式 Deferred模式我在<js异步编程>有说明, ajax调用本身返回就是一个Deferred对象,成功

上传-jQuery ajax form提交在IE8下不执行回调函数

问题描述 jQuery ajax form提交在IE8下不执行回调函数 // 上传文件function myUploadExcel(obj) {var options = { url : ""${ctx}/ins/pro/upLoadTempFile.do?filename=""+obj.value dataType : ""text"" beforeSubmit : function(formDatajqFormoption

服务器-jquery ajax URL始终无法响应的问题

问题描述 jquery ajax URL始终无法响应的问题 我想做一个简单的页面名字录入,点击确认按钮,名字上传到数据库的动作.由于是新手, 不太理解jquery ajax在同一页面的前后台通讯的问题.特别是URL要怎么写.是写个服务器上面的js文件地址?还是写一个js里面的函数,还是怎么办? 在node端的路由要如何写.在线求等! 起了服务器后,点击确认按钮,一直返回的都是error. 前端: $.ajax({ data: test, url: '../model/test.js', type

jQuery Ajax 实例 全解析

jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯. 废话少说,直接进入正题,我们先来看一些简单的方法,这些方法都是对jQuery.ajax()进行封装以方便我们使用的方法,当然,如果要处理复杂的逻辑,还是需要用到jQuery.ajax()的(这个后面会说到). 1. load( url, [data], [callback] ) :载入远程 HTML 文件代码并插入至 DOM 中. url (String) :

PHP+jQuery+Ajax+Mysql实现发表心情功能

  我们在浏览网站文章或帖子后,需要表达自己浏览后的心情感受,在很多网站都提供了给用户发表心情的功能,通过这个功能可以直观统计分析文章或帖子的浏览者的心情感受数据.在本文中,您将了解到,如何实现通过点击心情图标,即刻发表自己的心情. 下载 http://bbs.php100.com/read-htm-tid-391083-ds-1.html  本文通过实例讲解使用PHP+jQuery+Ajax+Mysql相结合,实现了用户发表心情的功能,操作简单,实用性强,是一篇将WEB知识进行综合应用的文章,

扩展JQuery Ajax请求错误机制,实现服务器端消息回馈

JQuery使我们在开发Ajax应用程序的时候提高了效率,减少了许多兼容性问题,但时间久了,也让我 们离不开他.比如简单的Jquery Ajax请求的封装让我们忘却了最原始的XmlHttpRequest对象和他的属性, 方法,也让我们远离事情的真相. 在Ajax项目中,经常遇到需要服务器端返回错误的消息提示,或者消息码之类的数据.查过一些帮助 ,解决方案,很多网站是返回错误的消息JSON数据或者脚本,这种方式当我们用JQuery.ajax()的时候出 现了问题,jquery.ajax()回调函数