IE下Excel二次导出兼容性调整
来源:互联网 发布:js点击按钮显示输入框 编辑:程序博客网 时间:2024/04/29 16:12
问题描述:
在IE下点击Excel导出,第一次正常,第二次异常。js代码如下:
全选示例 :
//导出excelfunction exportExcel(){showLoad();var urls = '<c:url value="/store/plan/exportPlans"/>';$.ajax({ url: urls, async:false,data:{query:query,enterpriseEnglishName:enterpriseEnglishName,createTime:createTime},success: function(data){ hiddenLoad(); window.location.href= "<c:url value="/store/plan/download"/>; $.messager.alert('提示消息','报表生成完成!');}});}
原因在于:
第一次导出时,通过"/store/plan/exportPlans"路径下的方法准备Excel数据,再通过"/store/plan/download"路径下的方法下载,等下载完之后,删除文件;在IE下若第二次导出时没有及时清除缓存,浏览器会直接通过window.location.href=""所指路径下载,由于文件已经删除,故系统异常。
解决办法:
1.将window.location.href=""改成表单提交的方式,如:
全选示例 :
//导出excelfunction exportExcel(){showLoad();var urls = '<c:url value="/store/plan/exportPlans"/>';$.ajax({ url: urls, async:false,data:{query:query,enterpriseEnglishName:enterpriseEnglishName,createTime:createTime},success: function(data){ hiddenLoad(); $.messager.alert('提示消息','报表生成完成!');$('#download').submit();}});} <form id="download"action="<c:url value="/store/plan/download"/>" method="post"> </form>
2.设置自动清除缓存,步骤如图:
新的解决办法
其实问题的根本原因在于:IE是根据请求的url是不是一样来是否发送请求,对于同一请求,IE只发送一次http请求,所以同一请求发送多次,但IE实际是不会发送的。 所以我们只需要在ajax的url之后加上一个随机数或当前时间即可。
全选示例 :
var urls = '<c:url value="/store/plan/exportPlans"/>'+"?fresh="+Math.random();
- IE下Excel二次导出兼容性调整
- IE下导出Excel
- excel 页面兼容性导出
- IE下GridView导出Excel无反应
- C# 开发中WebBrowser控件调整IE兼容性的方法
- IE下面table导出excel
- HTTPS下导出Excel, ie浏览器报“IE 无法下载 无法打开该站点” 解决办法
- IE浏览器不同版本下的兼容性
- IE兼容性
- [IE兼容性]
- IE兼容性
- ie兼容性
- IE兼容性
- IE兼容性
- IE兼容性
- 使用poi导出excel并调整样式
- 导出excel 格式自己随意调整
- html / ie - 调整ie兼容性,9 降到 8 或 8 降到 7
- Error Creating Deployment 有关Tomcat配置问题
- 关于MVC中下载后台生产的Excel
- java 实现md5加密
- struts2 引入多个配置文件
- Digest authentication
- IE下Excel二次导出兼容性调整
- spring引入多个配置文件
- java中list、set和map 的区别
- MySql中测试GUID 与Int自增主键 性能对比 总结适用场景
- eclipse svn和TortoiseSVN同时操作文件导致eclipse不识别
- sqlserver2008时间查询
- 超级链接和事件同事存在处理
- 输入法问题处理
- Method方法学习