Ajax+servlet实现文件下载. - Web 开发 / Ajax
各位前辈们,小弟最近遇到一个问题实在是难以解决,所以求救各位:
具体的功能是:
利用Ajax访问web的servlet.
主要目的是为了下载以及加载号的报表:
具体代码是:
Ajax:
function reportRequest(){
				var req=null;
				var url ='ajax.report';
				if(typeof XMLHttpRequest == 'undefined') {
					req = new ActiveXObject('Microsoft.XMLHttp');
				}else{
					req = new XMLHttpRequest();
				}
				req.open('post',url, true);//true表示异步
				req.onreadystatechange=function() {
					if(req.readyState==4) {
						alert("请点击保存");	
					}
				};
				req.send(null);			
}
servlet:
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		ServletOutputStream servletOutputStream = response.getOutputStream();
		try {
			System.out.println("ddd");
			HttpSession sess=request.getSession();
			JRXlsExporter exporter=(JRXlsExporter)sess.getAttribute("exporter");
			String reportName=(String)sess.getAttribute("reportName");
			ByteArrayOutputStream oStream = new ByteArrayOutputStream();
			exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, oStream);
			exporter.exportReport();
			response.setContentType("application/vnd.ms-excel;charset=utf-8");
			response.setHeader("Content-disposition", reportName);
			servletOutputStream.flush();
			servletOutputStream.close();
		} catch (JRException e) {
			e.printStackTrace();
		}
	}
可是始终不能出现下载的页面.恳求各位高手能指点一二.谢谢..
------解决方案--------------------
ajax在浏览器安全范围内无法实现文件下载。。。
你直接设置 location.href='ajax.report';这样不就行了??干吗非得用ajax