`
lihong11
  • 浏览: 456933 次
  • 性别: Icon_minigender_2
  • 来自: 湖南
社区版块
存档分类
最新评论

文件下载用ajax请求后没响应

阅读更多

文件下载用ajax请求后没响应

 

// $.ajax({
//     url:,
//     type:'POST',
//     dataType:'json',//json 返回值类型
//     data:{
//         fileId:fileId
//     },
//     success:function(data){
//         console.log("downFile-------");
//         MaskUtil.unmask();
//     },
//     error:function () {
//         MaskUtil.unmask();
//         alert("下载异常!", "", null, {type: 'warning'});
//     }
// });
改用 window.location.href=url 即可
window.location.href=basePath+"restful/downloadFile.do?fileId="+fileId;
点下载退出登录,记得带header 属性
var eleForm = $("<form method='get'></form>");
    eleForm.attr("action",basePath + "restful/downloadFile.do");
    eleForm.append($("<input />").attr("type", "hidden").attr("name", "fileId").attr("value", fileId));
    eleForm.append($("<input />").attr("type", "hidden").attr("name", "AiSeeCloudToken").attr("value", sessionStorage["AiSeeCloudToken"]));
    $(document.body).append(eleForm);
    eleForm.submit();
  
后端:
@RequestMapping(value = "/downloadFile")
	public void  downloadFile(String fileId,HttpServletRequest request,HttpServletResponse response) throws IOException {
//		String fileId = request.getParameter("fileId") == null ? "" : request.getParameter("fileId");
		logger.info("downloadFile id :" + fileId);
		Map<String,Object> params = Maps.newConcurrentMap();
		params.put("id", GlobalVariable.MONGO_KEY_PREFIX + fileId);
		JSONObject json = fileUpDownload.fileDownloadFromMongo(propertiesUtil.getUploadUrl(), propertiesUtil.getCollectionName(), params);
		JSONObject reJson = new JSONObject();
		reJson.put("success", false);
		if(json.getBooleanValue("success")) {
			String fileName = json.getString("filename");
			response.setCharacterEncoding("UTF-8");
	        response.setContentType("application/octet-stream");
	        //3.设置content-disposition响应头控制浏览器以下载的形式打开文件
	        response.addHeader("Content-Disposition","attachment;filename=" + new String(fileName.getBytes("UTF-8"),"ISO8859-1"));
			OutputStream os = null;
	        BufferedInputStream bis = null;
			try {
	            os = response.getOutputStream();
	            os.write(json.getBytes("bytes"));
	            os.flush();
	        } catch (IOException e) {
	            e.printStackTrace();
	        } finally {
	            try {
	            	if(bis != null)
	            		bis.close();
	            } catch (IOException e) {
	                e.printStackTrace();
	            }
	            try {
	            	if (os != null)
	            		os.close();
	            } catch (IOException e) {
	                e.printStackTrace();
	            }
	        }
		}
	}
 
0
0
分享到:
评论

相关推荐

    ajax实现java文件下载

    在这里,它可能包含了Ajax请求的发起代码,通过JavaScript(可能使用jQuery或Fetch API)向FileAction发送请求,请求参数包括要下载的文件扩展名。 6. **新建 文本文档.txt**:这可能是示例中的一个测试文件,用于...

    chrome扩展插件获取ajax请求记录

    其中,获取Ajax请求记录是开发者调试过程中非常关键的一环,因为它可以帮助开发者检查数据的发送和接收情况,排查网络问题,以及理解应用程序的工作流程。 Chrome扩展插件就是一种增强浏览器功能的方式,它们可以...

    Ajax请求发送成功但不进success的解决方法

    1.情况描述:ajax发送成功,后台也成功响应请求,并返回了json数据,通过chrome监听请求也可以看到响应的json数据,但是就是不进success方法,反而跑到error方法中了 前端: $.ajax({ type : get, data : {'dbId'...

    HTML使用极简的方式通过ajax请求实现前后端交互代码实现

    在上述代码中,我们定义了AJAX请求的各个关键属性:url指定服务器接口,type定义请求方法,data是待发送的数据,dataType指明期望的响应格式。success和error回调分别处理成功和失败的情况。 然而,为了更简洁,...

    spring mvc+ajax 导出导入xml文件功能实现和整理

    然后,关于导出XML文件,文档中并没有详细描述实现方式,但可以推测,导出功能很可能是通过服务器端生成相应的XML文件,并通过Ajax请求将文件作为响应返回给客户端,然后利用JavaScript触发浏览器的下载功能。...

    PHP 和 AJAX

    1. **AJAX基础**:创建AJAX请求通常使用JavaScript的`XMLHttpRequest`对象或者现代浏览器提供的`fetch` API。`XMLHttpRequest`的`open()`方法设置请求类型(GET或POST)、URL和是否异步,`send()`方法发送请求。`...

    上传文件AJAX

    在现代Web开发中,"上传文件AJAX"是一项至关重要的技术,它允许用户在不刷新整个页面的情况下,通过异步方式上传文件。这种方式极大地提升了用户体验,因为它使得网页交互更加流畅和快速。AJAX(Asynchronous ...

    图书馆添加删除判断 ajax.get 请求 ajax.post响应 考试专用

    开发者需要根据这些文档编写符合规范的AJAX请求。 在"图书管理案例.html"中,可以看到实际的HTML结构和JavaScript代码,包括事件监听、AJAX调用、数据处理等部分。通过阅读和分析这个文件,可以更深入地理解如何在...

    jquery+ajax+php文件下载.rar

    通过发送Ajax请求到服务器,客户端可以获取关于文件的信息或者触发实际的文件生成过程,所有这一切都在后台完成,用户界面保持不变。 然后,PHP是一种后端服务器脚本语言,通常用于处理Web请求,生成动态内容。在...

    ajax+json+servlet下载

    Servlet接收到下载请求后,会准备文件的下载流,并设置合适的HTTP响应头,比如Content-Disposition来指定文件名,以及Content-Type来指明文件类型。然后,Servlet将文件内容写入响应流,前端接收到这个响应后,...

    springmvc ajax 文件上传下载文件 multiple

    - 使用jQuery的`$.ajax()`或`$.formData()`方法,可以发送异步请求,实现在后台处理文件上传而无需页面刷新。 - 创建一个`FormData`对象,将选中的文件添加到其中,然后通过`xhr.send(formData)`发送到服务器。 -...

    asp.net+Ajax实现Excel文件导出

    3. **编写Ajax调用**:使用jQuery或其他JavaScript库,我们可以编写Ajax请求来调用服务器上的方法。这样可以实现异步导出,避免页面刷新,提高用户体验。Ajax调用通常包含URL、类型(GET或POST)、数据和回调函数。 ...

    谷歌浏览器插件—— Ajax Interceptor

    Ajax Interceptor 是一款专为谷歌浏览器(Chrome)设计的插件,它允许开发者在Ajax请求发送后和响应返回前进行干预,从而实现对AJAX请求数据的修改。这款插件对于前端开发、调试以及测试来说是一个强大的工具,特别...

    ajax安装包 ajax所有安装文件 赶紧下载回去用用吧 赶紧下载回去用用吧 赶紧下载回去用用吧 练习ajax啊

    2. **JavaScript**:负责触发Ajax请求,处理响应数据,以及更新DOM(文档对象模型)以显示新数据。JavaScript可以创建异步调用,使页面在请求处理期间保持活动状态。 3. **数据格式**:虽然最初是XML,但现在更常见...

    ajax跨域请求WebService.asmx

    【Ajax跨域请求WebService.asmx】是一个常见的Web开发技术应用场景,主要涉及到JavaScript的Ajax技术、C#编程语言以及ASP.NET的WebService组件。Ajax(Asynchronous JavaScript and XML)是一种在不刷新整个页面的...

    Ajax相关源码jar包下载

    5. **响应处理**:服务器返回数据,Ajax请求对象的onreadystatechange事件被触发,当readyState属性变为4(表示请求已完成)且status属性为200(表示成功)时,表示数据已准备好。 6. **更新DOM**:JavaScript接收到...

    ajax处理跨域请求

    在jQuery中,使用$.ajax()方法发起AJAX请求时,可以设置`crossDomain`参数为`true`来开启跨域请求。例如: ```javascript $.ajax({ url: 'http://example.com/api/data', // 跨域的URL type: 'GET', crossDomain...

    ajax上传文件案例

    2. **AJAX调用**:使用ajaxfileupload库,我们需要配置一个AJAX请求,指定URL(服务器端处理文件的接口)、参数(如文件数据、额外信息等)以及回调函数,处理成功或失败的响应。 3. **FormData对象**:在现代...

    ajax的get请求源码

    通过上述分析,我们可以看到使用 Python 的 `urllib.request` 库可以轻松实现类似于 Ajax 的 GET 请求。虽然这段代码并不是纯前端 Ajax 实现,但它为我们提供了一种理解 Ajax 工作原理的方法。对于前端开发人员来说...

Global site tag (gtag.js) - Google Analytics