ajaxfileupload.js上传文件后调用error函数该如何处理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了ajaxfileupload.js上传文件后调用error函数该如何处理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2439字,纯文字阅读大概需要4分钟。
内容图文
![ajaxfileupload.js上传文件后调用error函数该如何处理](/upload/InfoBanner/zyjiaocheng/299/d035118811f0493687d334692308d7a7.jpg)
代码如下:
//上传文件 $("#CompChange").click(function() { var params = $("#CompchangeTable").serialize(); var json0={'video.slogan':$('#Cbasic_score').val(),'video.videoKind':$("#Cextra_score").val(), 'video.videoName':$("#name").val()}; $.ajaxFileUpload({ type: "POST", url: "adminAction-upFile.action", data:json0,//要传到后台的参数,没有可以不写 secureuri : false,//是否启用安全提交,默认为false fileElementId:['file1','file2'],//文件选择框的id属性 dataType: 'json',//服务器返回的格式 async : false, success: function(data){ alert("成功"); }, error: function (data, status, e){ alert("失败"); } }); });
上传后会报错:
从报错上看可能是多了一个"<"符号。经过大量的尝试后,终于发现了不对劲的地方。我是把dataType的类型换成了context类型,并在success函数中打印出data。
结果是:
你回发现返回的数据中有<pre>标签,问题终于找到了,原来是JSon格式,但是返回的格式明显不是JSon格式,在网上查了一下才知道有时候后台必须要则么做,所以只能找别的方法了,最后就在ajaxfileupload.js文件里发现了这个:
uploadHttpData : function(r, type) { var data = !type; data = type == "xml" || data ? r.responseXML : r.responseText; // If the type is "script", eval it in global context if (type == "script") jQuery.globalEval(data); // Get the JavaScript object, if JSON is used. if (type == "json"){ eval("data = " + data); } // evaluate scripts within html if (type == "html") jQuery("<p>").html(data).evalScripts(); return data; }
这就返回的值,返回JSon格式时,它直接把数据赋值,这肯定是不行的,所以我们要做修改:
uploadHttpData : function(r, type) { var data = !type; data = type == "xml" || data ? r.responseXML : r.responseText; // If the type is "script", eval it in global context if (type == "script") jQuery.globalEval(data); // Get the JavaScript object, if JSON is used. if (type == "json"){ ////////////以下为新增代码/////////////// data = r.responseText; var start = data.indexOf(">"); if(start != -1) { var end = data.indexOf("<", start + 1); if(end != -1) { data = data.substring(start + 1, end); } } ///////////以上为新增代码/////////////// eval("data = " + data); } // evaluate scripts within html if (type == "html") jQuery("<p>").html(data).evalScripts(); return data; }
我们把中间的截取出来就行了。
这就是我的解决方法,希望对其他人也有用。
以上就是ajaxfileupload.js上传文件后调用error函数该如何处理的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是互联网集市为您收集整理的ajaxfileupload.js上传文件后调用error函数该如何处理全部内容,希望文章能够帮你解决ajaxfileupload.js上传文件后调用error函数该如何处理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。