主题:问一个利用ajax从服务器端获取excel文件的问题
时间: 2020-08-27来源:ITEYE
前景提要
相关推荐: ajax+struts实现多级下拉列表联动,无刷新 Ajax 的发送请求和直接提交Form 到Action 有什么区别? 告诉你AJAX怎么玩 利用ajax从服务端获取excel文件 使用Ajax获取服务器端文件的内容 $.ajax()方法从服务器获取json数据几种方式详解 如何使用JavaScript导入和导出Excel文件 通过Ajax方式上传文件,使用FormData进行Ajax请求
推荐群组: JAVA 3T
更多相关推荐
JavaScript Ajax 我原来不是用ajax方式做,是用:<html:link page="/excel.do?action=byteacher&teacherid=1">生成EXCEL报表</html:link> 方式做的,服务器端的代码如下: public class ExcelAction extends BaseAction { public ActionForward doExcuteAction(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String actionType = request.getParameter("action"); if ("byteacher".equals(actionType.trim())) { String teacherId = request.getParameter("teacherid"); //利用业务组件从后端获取数据 List teacherSelectedAssignments = this.adminBussiness .getTeacherAssignment(Integer.parseInt(teacherId)); try { response.setContentType("application/vnd.ms-excel"); //利用ExcelReportUtil工具类生成excel文件 ExcelReportUtil.writeAssignmentExcelByTeacher( teacherSelectedAssignments, response.getOutputStream()); } catch (WriteException e) { // TODO Auto-generated catch block System.out.println("WriteException 错误"); } catch (IOException e) { System.out.println("IO 错误"); } } return null; } } 这样作是没有问题的,可以生长excel报表! 后来我想改为用ajax来作:关键代码如下: <script language="JavaScript"> HTTPRequest=function() { http_request = false; if (window.XMLHttpRequest) { // Mozilla, Safari,... http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType('text/xml'); } } else if (window.ActiveXObject) { // IE try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (http_request) { return http_request; } } function getreportbyteacher(oSel){ alert(oSel.options[oSel.selectedIndex].value); var http = new HTTPRequest(); http.open("GET","/ecjtuthesis/excel.do?action=byteacher&teacherid="+oSel.options[oSel.selectedIndex].value,true); http.send(); } </script> …… <select name="assignTeacherId" id="teacher"> <c:forEach var="i" items="${teachers}"> <option value="${i.teacherId}"> <c:out value="${i.teacherName}" /> </option> </c:forEach> </select> 老师 <input type="button" value="生成报表" onclick="getreportbyteacher(document.all('teacher'));" /> ………… 调试发现: http.open("GET","/ecjtuthesis/excel.do?action=byteacher&teacherid="+oSel.options[oSel.selectedIndex].value,true); http.send(); 信息发送到了服务器端,没有问题,就是不见生成的excel文件!各位有没有碰到类似的问题,帮我分析一下,谢谢

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行