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 相关文章推荐
jQuery实现鼠标滑过遮罩并高亮显示效果
Jul 16 Javascript
jquery阻止冒泡事件使用模拟事件
Sep 06 Javascript
JavaScript实现在页面间传值的方法
Apr 07 Javascript
JavaScript对象数组如何按指定属性和排序方向进行排序
Jun 15 Javascript
JS实现环形进度条(从0到100%)效果
Jul 05 Javascript
AngularJS之依赖注入模拟实现
Aug 19 Javascript
JavaScript实现自动切换图片代码
Oct 11 Javascript
JavaScript实现的select点菜功能示例
Jan 16 Javascript
Vue隐藏显示、只读实例代码
Jul 18 Javascript
微信小程序之侧边栏滑动实现过程解析(附完整源码)
Aug 23 Javascript
vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多(步骤详解)
Jan 14 Javascript
javaScript Array api梳理
Mar 31 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
PHP 分页原理分析,大家可以看看
2009/12/21 PHP
PHP中操作ini配置文件的方法
2013/04/25 PHP
php获取$_POST同名参数数组的实现介绍
2013/06/30 PHP
PHP将MySQL的查询结果转换为数组并用where拼接的示例
2016/05/13 PHP
PHP code 验证码生成类定义和简单使用示例
2020/05/27 PHP
JS实现浏览器菜单命令
2006/09/05 Javascript
JavaScript中null与undefined分析
2009/07/25 Javascript
jquery select操作的日期联动实现代码
2009/12/06 Javascript
xml文档转换工具,附图表例子(hta)
2010/11/17 Javascript
jQuery powerFloat万能浮动层下拉层插件使用介绍
2010/12/27 Javascript
网页前端优化之滚动延时加载图片示例
2013/07/13 Javascript
表格奇偶行设置不同颜色的核心JS代码
2013/12/24 Javascript
jquery Ajax 实现加载数据前动画效果的示例代码
2014/02/07 Javascript
javascript生成随机数的方法
2014/05/16 Javascript
解决js下referer兼容各大浏览器的方法
2014/11/03 Javascript
PHP中使用微秒计算脚本执行时间例子
2014/11/19 Javascript
javascript基于prototype实现类似OOP继承的方法
2015/12/16 Javascript
jQuery的选择器中的通配符[id^='code']或[name^='code']及jquery选择器总结
2015/12/24 Javascript
分享javascript计算时间差的示例代码
2020/03/19 Javascript
JavaScript实战(原生range和自定义特效)简单实例
2016/08/21 Javascript
vue实现图书管理demo详解
2017/10/17 Javascript
NodeJS实现同步的方法
2019/03/02 NodeJs
基于vue hash模式微信分享#号的解决
2020/09/07 Javascript
vue中实现点击空白区域关闭弹窗的两种方法
2020/12/30 Vue.js
python中函数传参详解
2016/07/03 Python
python 获取网页编码方式实现代码
2017/03/11 Python
Python实现拷贝/删除文件夹的方法详解
2018/08/29 Python
Python+Tensorflow+CNN实现车牌识别的示例代码
2019/10/11 Python
python内置模块collections知识点总结
2019/12/19 Python
python编写softmax函数、交叉熵函数实例
2020/06/11 Python
css3制作彩色边线3d立体按钮的示例(css3按钮)
2014/05/06 HTML / CSS
什么是Deployment descriptors;都有什么类型的部署描述符
2015/07/28 面试题
报关简历自我评价怎么写
2013/09/19 职场文书
上班离岗检讨书
2014/01/27 职场文书
培训楼经理岗位责任制
2014/02/10 职场文书
canvas绘制折线路径动画实现
2021/05/12 Javascript