js ajaxfileupload.js上传报错的解决方法


Posted in Javascript onMay 05, 2016

相信大家在工作中经常用到文件上传的操作,因为我是搞前端的,所以这里主要是介绍ajax在前端中的操作。代码我省略的比较多,直接拿js那里的

$.ajaxFileUpload({
   url:'www.coding/mobi/file/uploadSingleFile.html',//处理图片脚本
   secureuri :false,
   fileElementId :'image2',//file控件id。就是input type="file" id="image2"
   dataType : 'json',
   success : function (data, status){
    console.log(data);
   },
   error: function(data, status, e){
    alert(e);
   }
   })

按照教程,这样子上传的话是没有问题的,可是它一直有一个报错。报的是什么错有点忘了,不好意思 ,因为用完很久才记得补回这篇文章,但是要修改它的源码,那个错误就可以解决了 

它源码的最后一段是这样子的

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("<div>").html(data).evalScripts();
  //alert($('param', data).each(function(){alert($(this).attr('value'));}));
 return data;
 }

将这一段改为这样子

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" ){
  // 因为json数据会被<pre>标签包着,所以有问题,现在添加以下代码,
  // update by hzy
  var reg = /<pre.+?>(.+)<\/pre>/g; 
  var result = data.match(reg);
  result = RegExp.$1;
  // update end
  data = $.parseJSON(result);
  // eval( "data = " + data );
 // evaluate scripts within html
 }
 if ( type == "html" )
  jQuery("<div>").html(data).evalScripts();
  //alert($('param', data).each(function(){alert($(this).attr('value'));}));
 return data;
 }

这样就可以正常使用了。

另一种情况:ajaxFileUpload 报这错jQuery.handleError is not a function

版本1.4.2之前的版本才有handlerError方法,例子里使用的Jquery是1.2的,解决方法:

为了能够继续使用ajaxfileupload上传我们的附件,只好将下面代码拷进我们的项目中的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] ); 
    } 
 }

更多精彩内容请参考专题《ajax上传技术汇总》,《javascript文件上传操作汇总》和《jQuery上传操作汇总》进行学习。

以上就是面对ajaxupload.js上传报错问题的解决方法,希望能帮助大家解决困难,也希望大家继续关注三水点靠木更多精彩内容。

Javascript 相关文章推荐
JavaScript DOM学习第六章 表单实例
Feb 19 Javascript
AngularJS学习笔记之ng-options指令
Jun 16 Javascript
jquery实现带缩略图的全屏图片画廊效果实例
Jun 25 Javascript
node.js入门实例helloworld详解
Dec 23 Javascript
react配合antd组件实现的管理系统示例代码
Apr 24 Javascript
jQuery Migrate 插件用法实例详解
May 22 jQuery
微信小程序用户授权弹窗 拒绝时引导用户重新授权实现
Jul 29 Javascript
解决layer.open弹出框不能获取input框的值为空的问题
Sep 10 Javascript
javascript实现弹幕墙效果
Nov 28 Javascript
Vue学习笔记之计算属性与侦听器用法
Dec 07 Javascript
JavaScript实现显示和隐藏图片
Apr 29 Javascript
JavaScript严格模式不支持八进制的问题讲解
Nov 07 Javascript
javascript执行环境及作用域详解
May 05 #Javascript
asp.net+jquery.form实现图片异步上传的方法(附jquery.form.js下载)
May 05 #Javascript
Bootstrap嵌入jqGrid,使你的table牛逼起来
May 05 #Javascript
Struts2+jquery.form.js实现图片与文件上传的方法
May 05 #Javascript
使用jquery.form.js实现图片上传的方法
May 05 #Javascript
探讨:JavaScript ECAMScript5 新特性之get/set访问器
May 05 #Javascript
浅析JS异步加载进度条
May 05 #Javascript
You might like
星际中一些鲜为人知的详细资料
2020/03/04 星际争霸
PHP图片处理之使用imagecopyresampled函数实现图片缩放例子
2014/11/19 PHP
PHP清除字符串中所有无用标签的方法
2014/12/01 PHP
ThinkPHP实现分页功能
2017/04/28 PHP
关于laravel后台模板laravel-admin select框的使用详解
2019/10/03 PHP
ThinkPHP5分页paginate代码实例解析
2020/11/10 PHP
40款非常棒的jQuery 插件和制作教程(系列二)
2011/11/02 Javascript
获得Javascript对象属性个数的示例代码
2013/11/21 Javascript
jquery toolbar与网页浮动工具条具体实现代码
2014/01/12 Javascript
js实现俄罗斯方块小游戏分享
2014/01/31 Javascript
jQuery+ajax中getJSON() 用法实例
2014/12/22 Javascript
从零开始学习Node.js系列教程六:EventEmitter发送和接收事件的方法示例
2017/04/13 Javascript
JavaScript限制在客户区可见范围的拖拽(解决scrollLeft和scrollTop的问题)(2)
2017/05/17 Javascript
javascript简单写的判断电话号码实例
2017/05/24 Javascript
Vue.js中使用iView日期选择器并设置开始时间结束时间校验功能
2018/08/12 Javascript
小程序如何使用分包加载的实现方法
2019/05/22 Javascript
Vue + Element UI图片上传控件使用详解
2019/08/20 Javascript
element的el-table中记录滚动条位置的示例代码
2019/11/06 Javascript
[06:25]第二届DOTA2亚洲邀请赛主赛事第二天比赛集锦.mp4
2017/04/03 DOTA
[02:37]2018DOTA2亚洲邀请赛赛前采访 VP.no[o]ne心中最强SOLO是谁
2018/04/04 DOTA
python中argparse模块用法实例详解
2015/06/03 Python
python 将字符串中的数字相加求和的实现
2019/07/18 Python
详解Django 时间与时区设置问题
2019/07/23 Python
Python中的延迟绑定原理详解
2019/10/11 Python
django 外键创建注意事项说明
2020/05/20 Python
Python使用pyexecjs代码案例解析
2020/07/13 Python
通俗易懂了解Python装饰器原理
2020/09/17 Python
HTML5之SVG 2D入门13—svg对决canvas及长处和适用场景分析
2013/01/30 HTML / CSS
梵蒂冈和罗马卡:Omnia Card Pass
2018/02/10 全球购物
马来西亚户外装备商店:PTT Outdoor
2019/07/13 全球购物
教室布置标语
2014/06/26 职场文书
校长师德师风自我剖析材料
2014/09/29 职场文书
优秀班组申报材料
2014/12/25 职场文书
男方婚礼答谢词
2015/01/20 职场文书
三严三实·严以律己心得体会
2016/01/13 职场文书
Java面试题冲刺第十七天--基础篇3
2021/08/07 面试题