虽然我最后没有用ajaxfileupload实现异步上传的功能,但是也对其中的错误进行查看,错误整理如下:
问题1:jQuery.handleError is not a function 原因是,经测试handlerError只在jquery-1.4.2之前的版本中存在,jquery-1.6 和1.7中都没有这个函数了,因此在1.4.2中将这个函数复制到了ajaxFileUpload.js中,问题解决
handleError: function( s, xhr, status, e ) {
// If a local callback was specified, fire it
if ( s.error ) {
s.error.call( s.context || s, xhr, status, e );
}
// Fire the global callback
if ( s.global ) {
(s.context ? jQuery(s.context) : jQuery.event).trigger( "ajaxError", [xhr, s, e] );
}
},
问题2:一直得到error ,无法执行指定的success方法。通过追踪ajaxFileUpload的执行过程发现,在调用它自身的uploadHttpData函数时,当执行if(type=="json") eval("data = "+data);
会抛出异常,导致在处理异常的时候将status = "error" 因此一直执行error方法。
上网查询,得知eval函数是用来执行一段js代码,而并不是如我所想的反解json串
eval("data = "+data);的意思是 将data 赋值给 data参数 ,但是当我返回给页面的是一个简单的字符串,比如"OK" ,时,这样写就抛出异常。最后改为 eval("data = \" "+data+" \" ");即将返回的数据用双引号引起来
问题3:ajaxFileUpload Plugin上传文件Chrome,Firefox出现Error:unexpected token<
解决方法:http://liwx2000.iteye.com/blog/1540321
相关推荐
ajaxfileupload.js 上传文件不报错版本! 放心使用!! 平时自己用的
ajaxfileupload.js引用的1.4以上的jquery.js文件会报错,原因是以前jquery1.4的文件中包含 handleError函数 到后面的版本就没了,还有返回的数据ajaxfileupload.js会默认加上标签,在此资源中都已解决
ajaxfileupload.js 这是个非常好的异步上传图片的插件,来解决form表单上传时要刷新页面的问题。
ajaxfileupload.js 异步上传文件: 直接引用。 调用方法: $.ajaxFileUpload({ url:'',//后台接口地址 type: post, secureuri: false, //一般设置为false fileElementId: 'ofx', // 上传文件的id、name属性名 ...
修复ajaxfileupload.js 不能携带参数问题,修复返回json格式报错问题。轻松搞定异步上传图片问题。
ajaxfileupload.js 兼容ie6789 经过项目测试了的,之前网上下载的都有点小问题,自己重新整理了一下。jQuery.browser.version=="6.0" 这些代码,【 需要自己解决jQuery不支持$.browser的办法 因为我用的是jquery...
上次在网上下载个源文件一直有报错,还不是压缩版的,一开始我还以为是jq版本的问题,换了好几个都没有用,最后换上了这个源文件什么都好了
添加了handleError,防止因为jquery版本问题报错; uploadHttpData中类型为json时对data进行了处理,去除了返回数据中的标签 建议后台返回text/html格式的Response;防止在ie下不能识别application/json类型造成的异常
主要为大家详细介绍了js ajaxupload.js上传报错的解决方法,感兴趣的小伙伴们可以参考一下
ajaxFileUpload 博文链接:https://raising.iteye.com/blog/2233668