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入门之基本函数详解
Oct 21 Javascript
详解JavaScript UTC时间转换方法
Jan 07 Javascript
bootstrap-treeview自定义双击事件实现方法
Jan 09 Javascript
基于JavaScript实现瀑布流布局(二)
Jan 26 Javascript
AngularJs directive详解及示例代码
Sep 01 Javascript
详解JS中遍历语法的比较
Apr 07 Javascript
Vue实现自定义下拉菜单功能
Jul 16 Javascript
微信小程序webview实现长按点击识别二维码功能示例
Jan 24 Javascript
vue实例的选项总结
Jun 09 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
Jul 12 Javascript
vue中选中多个选项并且改变选中的样式的实例代码
Sep 16 Javascript
Javascript中的奇葩知识,你知道吗?
Jan 25 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中数组定义的几种方法
2013/09/01 PHP
php获取数组长度的方法(有实例)
2013/10/27 PHP
PHP中替换键名的简易方法示例详解
2014/01/07 PHP
php中二维数组排序问题方法详解
2015/08/28 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
判断多个元素(RADIO,CHECKBOX等)是否被选择的原理说明
2009/02/18 Javascript
在IE浏览器中resize事件执行多次的解决方法
2011/07/12 Javascript
js如何实现点击标签文字,文字在文本框出现
2015/08/05 Javascript
jQuery实现的表头固定效果实例【附完整demo源码下载】
2016/08/01 Javascript
vue分类筛选filter方法简单实例
2017/03/30 Javascript
JS ES6中setTimeout函数的执行上下文示例
2017/04/27 Javascript
JS库之ParticlesJS使用简介
2017/09/12 Javascript
详解React 在服务端渲染的实现
2017/11/16 Javascript
Vue.js添加组件操作示例
2018/06/13 Javascript
JS使用栈判断给定字符串是否是回文算法示例
2019/03/04 Javascript
Vue触发隐藏input file的方法实例详解
2019/08/14 Javascript
详解从vue-loader源码分析CSS Scoped的实现
2019/09/23 Javascript
Vue项目打包编译优化方案
2020/09/16 Javascript
antd Select下拉菜单动态添加option里的内容操作
2020/11/02 Javascript
python遍历文件夹并删除特定格式文件的示例
2014/03/05 Python
Python实现确认字符串是否包含指定字符串的实例
2018/05/02 Python
用python编写第一个IDA插件的实例
2018/05/29 Python
使用python Fabric动态修改远程机器hosts的方法
2018/10/26 Python
Python类如何定义私有变量
2020/02/03 Python
python实现扫雷小游戏
2020/04/24 Python
浅析python 通⽤爬⾍和聚焦爬⾍
2020/09/28 Python
HTML5 Canvas如何实现纹理填充与描边(Fill And Stroke)
2013/07/15 HTML / CSS
加拿大花店:1800Flowers.ca
2016/11/16 全球购物
金士达面试非笔试
2012/03/14 面试题
Python是如何进行类型转换的
2013/06/09 面试题
廉洁教育学习材料
2014/05/19 职场文书
法人代表证明书格式
2014/10/01 职场文书
个人政治思想总结
2015/03/05 职场文书
2015入党个人自传范文
2015/06/26 职场文书
幼儿园大班教学反思
2016/03/02 职场文书