文件下载用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();
}
}
}
}
分享到:
相关推荐
无论考虑转向 XHTML 的网页设计人员、使用 JavaScript 的 Web 程序员、使用部署描述文件和数据绑定的服务器端程序员,还是研究基于 XML 的数据库的后端开发人员,都在使用这种可扩展标记语言。因此,XML 被认为是 ...
阿贾克斯钩原理解析: : 简介Ajax-hook是一个精巧的用于拦截浏览器XMLHttpRequest的库,它可以在XMLHttpRequest对象发起请求之前和接收响应内容之后获得处理权。通过它您可以在对请求和响应进行一些预处理。更新记录...
主要介绍了关于Node.js是如何响应Ajax的POST请求并且保存为JSON文件的相关资料,文中介绍的很详细,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
在你js代码要发送ajax请求的地方断点一下,然后比较在【引入jquery-mockjax】 和 【没有引入jquery-mockjax】的情况下$.ajax.toString()的值情况。 很明显,引入jquery-mockjax时,这个mock库会对jquery提供的ajax...
Django处理Ajax发送的Get请求实例,Ajax优点在一是异步请求,无需等待响应就可以再次发起请求,而是局部刷新,避免整个页面刷新的网页闪动。 打开命令行窗口,输入命令,创建django工程: django-admin startproject...
AJAX调试器会将所有AJAX(XMLHttpRequest)活动记录到Chrome的开发者工具控制台。 这使开发人员可以轻松查看顶级请求信息,例如HTTP状态,响应时间和大小。 单击URL在新选项卡中打开AJAX调用,包括所有输入,从而使...
实例18 文件下载 实例19 文件上传 实例20 网页计数器 实例21 超级链接计数 第3章 数据库、XML实例 实例22 mysql类库完成MySQL数据库的添加、删除和修改 实例23 mysqli类库完成MySQL数据库的添加、删除和查询 实例24 ...
特性支持Promise API支持Typescript开发拦截请求和响应自定义配置请求实例多种方法方法请求支持RequestTask操作 :french_fries:文件 :green_salad:安装插件市场在插件市场右上角选择使用HBuilder X 导入插件下载插件...
ajax持久连接:文档加载完毕后(或其他时机),使用ajax请求一个php文件 被请求的php文件通过while(true)循环.迟迟不给apache返回数据的目的. 轮询指:请求服务器的时候.如果服务器没有数据.则一直等.当服务器有数据后...
由于现在Web应用程序通常提供以桌面应用程序格式(例如.doc或.xls)导出数据的选项,因此我们编写了一个jQuery插件来促进来自前端的请求,这些请求导致文件下载。 该插件实际上并没有使用Ajax,但是其语法遵循...
我在A页面有一个表单内容需要使用蓝牙打印机打印,填完表单信息,并通过ajax请求发送到 B文件(PHP)中处理信息,正常通过form表单跳转到B页面后,是可以打印出来的,因为B页面中除了处理 数据的PHP之外还混合了 JS...
7、AJAX请求总共有多少种CALLBACK Ajax请求总共有八种Callback onSuccess onFailure onUninitialized onLoading onLoaded onInteractive onComplete onException 8.Ajax和javascript的区别 javascript一种在浏览器...
在本文中,您将看到服务器如何在请求响应中发送XML。 现在如果不使用XML就不能进行任何有意义的编程。无论考虑转向XHTML的网页设计人员、使用JavaScript的Web程序员、使用部署描述文件和数据绑定的服务器端程序员,...
完整购物网站,前端页面使用html+css+js(结合jquery)进行开发,使用ajax技术发起请求,后端使用servlet进行对前端请求的响应;网站主要实现了基本的用户登录、注册、浏览商品、查看商品详情、搜索商品、管理员登录...
通过使用PHP用户可以轻松创建出动态的Web应用程序,... 第17章 发送请求并处理响应.ppt 第18章 AJAX实际应用.ppt 第19章 PHP+AJAX留言簿程序.ppt 第20章 PHP+AJAX聊天室程序.ppt 第21章 用PHP+Ajax制作论坛.ppt
实例18 文件下载 实例19 文件上传 实例20 网页计数器 实例21 超级链接计数 第3章 数据库、XML实例 实例22 mysql类库完成MySQL数据库的添加、删除和修改 实例23 mysqli类库完成MySQL数据库的添加、删除和查询 ...
jasmine-ajax是一个库,使用该库,您可以为应用程序提出的Ajax请求定义一组假响应,根据规格指定应使用的响应,并跟踪您提出的Ajax请求,以便可以对结果进行断言。贡献请阅读主要的Jasmine和。 提交请求时,请运行...
Ajax:异步请求响应处理;页面局部刷新 (所有请求一律采用Ajax方式交互) jQuery:简化js和Ajax编程,实现前端处理 SpringMVC:实现控制层,用于接收请求分发 给业务模型处理,并实现请求响应 SpringIOC:实现管理控制层,...
记录的数据包括:•名为文件•响应状态•响应时间•响应大小•带有所有输入参数的AJAX源链接•包含所有请求和响应详细信息的对象•响应内容(可选)•如果响应时间超过设置的时间则发出警告徽标和促销由安迪·梅斯金...