最近做项目时,视图中用ajaxfileupload.js异步提交表单时,接收的是JSON格式的数据,但是奇怪的是在IE中提示下载文件,其他浏览器中一切正常,下载后,里面的内容就是在控制器中返回的json数据。
JS代码如下:
function importMember(dialogObj) { // 提交 $.ajaxFileUpload({ url: '${basepath}/memberManage/importMember', type: 'POST', secureuri: false, //一般设置为false fileElementId: 'importFile', // 上传文件的id、name属性名 dataType: 'json', //返回值类型,一般设置为json/application/text success: function(data, status) { if('true' == data.success){ // appoc.success("导入成功", handler, dialogObj); appoc.success("导入成功", null, null); } else { appoc.error("导入失败,请联系管理员"); } }, error: function(data, status, e) { appoc.error("导入失败,请联系管理员", null, null); } }); }
解决办法:
1. 在控制器中设置返回contentType为:text/html
protected void outObj2JsonString(HttpServletResponse response, Map<String, Object> obj) { //将实体对象转换为JSON Object转换 String s = JSONObject.toJSONString(obj); response.setContentType("text/html; charset=utf-8"); PrintWriter out = null; try { out = response.getWriter(); out.append(s); } catch (IOException e) { e.printStackTrace(); } finally { if (out != null) { out.close(); } } }
2. 同时将前台JS数据类型设置为text,将将其转换为JSON格式
function importMember(dialogObj) { // 提交 $.ajaxFileUpload({ url: '${basepath}/memberManage/importMember', type: 'POST', secureuri: false, //一般设置为false fileElementId: 'importFile', // 上传文件的id、name属性名 dataType: 'text', //返回值类型,一般设置为json/application/text success: function(data, status) { eval(data); if('true' == data.success){ // appoc.success("导入成功", handler, dialogObj); appoc.success("导入成功", null, null); } else { appoc.error("导入失败,请联系管理员"); } }, error: function(data, status, e) { appoc.error("导入失败,请联系管理员", null, null); } }); }
相关推荐
这里解决了ajaxfileupload中ie9、ie10兼容的问题,下载下来直接可以使用
修复ajaxfileupload 在IE下上传的bug 修复ajaxfileupload 在IE下上传的bug
ajaxfileupload在ie9和ie10中的兼容,最好在input的onchange方法中调用ajaxfileupload,input通过设置透明的方法来进行美化。如果用js调用input的click方法,会出现拒绝访问的错误。
本文将详细介绍如何解决在IE9和Firefox下使用`AjaxFileUpload.js`进行文件上传时遇到的大文件上传失效的问题。 #### 问题描述 当尝试通过`AjaxFileUpload.js`上传较大文件至服务器时,在IE9和Firefox浏览器中可能...
用ajax的ajaxfileupload.js插件上传文件发现不支持IE9, 后来改了文件里的一些代码后可以了。 就拿出来共享。。。
ajaxfileupload.js 兼容IE
这篇博客文章(尽管描述为空)很可能探讨了在IE9下使用`ajaxFileUpload.js`时遇到的问题以及如何解决这些问题。 在IE9中,由于浏览器对HTML5新特性的支持有限,文件API和Ajax交互可能会出现异常。例如,`FormData`...
ajaxfileupload返回的json数据不带<pre></pre>标签 修改返回始终不走success方法BUG
这个插件允许用户在不刷新页面的情况下,通过Ajax技术上传图片。异步上传意味着用户可以选择文件后,后台可以开始上传过程,而用户可以继续在页面上进行其他操作,提高了交互性和效率。在实际应用中,ajaxfileupload...
在描述中提到的"ajaxfileupload.js"是一个流行的JavaScript库,用于处理Ajax文件上传,但可能在某些IE版本中存在兼容性问题。"fileUpload"这个解决方案就是为了解决这个问题,使得用户能够在IE8这样的老版本浏览器中...
在本文中,我们将深入探讨AjaxFileUpload.js的工作原理、使用方法以及相关的前端文件上传技术。 一、AjaxFileUpload.js概述 AjaxFileUpload.js是基于Ajax技术的,其主要目的是解决传统HTML表单提交文件时页面必须...
这个技术在现代Web应用中非常常见,因为它提供了更好的用户体验,用户可以在不离开当前页面的情况下上传文件,大大提升了交互性和效率。 核心知识点: 1. **Ajax(异步JavaScript和XML)**:Ajax是Web开发的一种...
ajaxfileupload.js用于文件上传
AjaxFileUpload是一个基于AJAX技术的JavaScript组件,它允许用户在不刷新页面的情况下完成文件上传,提供了更好的用户体验。 这篇博客(博文链接:https://sshitaime.iteye.com/blog/2155749)可能详细解释了如何...
在现代Web应用中,文件上传是一项常见的...通过以上知识点,我们可以实现一个基本的`ajaxFileUpload`功能,使用户在不刷新页面的情况下完成文件上传操作。在实际开发中,还可能需要根据具体需求进行更多定制和优化。
注意:后台服务 要以 text/html形式返回,否则在ie下会提示下载 返回的 异步 相应数据, 例如:java 使用 spring mvc 则需 @RequestMapping(value = "/xx/xx/upload.do",produces="text/html") 此文件中 判断 IE ...
此为前端进行文件上传,使用Ajax方式提交的js插件,使用方便简洁,开发很高效。
优化过的ajaxfileupload.js文件 兼容IE,但是用的时候需要引用jquery1.8左右 不能用1.9以上版本
在IT行业中,前端开发经常需要处理用户上传和下载文件的需求。`AjaxFileUpload`是一个基于jQuery的插件,专门用于实现异步文件上传功能,它极大地优化了用户体验,避免了传统表单提交带来的页面刷新问题。这篇内容将...