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 相关文章推荐
ASP中进行HTML数据及JS数据编码函数
Nov 11 Javascript
一个关于jqGrid使用的小例子(行按钮)
Nov 04 Javascript
js自动闭合html标签(自动补全html标记)
Oct 04 Javascript
ie下jquery.getJSON的缓存问题的处理方法
Mar 29 Javascript
如何在JavaScript中实现私有属性的写类方式(一)
Dec 04 Javascript
jQuery中:header选择器用法实例
Dec 29 Javascript
详解javascript实现瀑布流列式布局
Jan 29 Javascript
Javascript基础_简单比较undefined和null 值
Jun 14 Javascript
浅谈Webpack打包优化技巧
Jun 12 Javascript
jquery-ui 进度条功能示例【测试可用】
Jul 25 jQuery
Node4-5静态资源服务器实战以及优化压缩文件实例内容
Aug 29 Javascript
微信小程序获取公众号文章列表及显示文章的示例代码
Mar 10 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编程效率 引入缓存机制提升性能
2010/02/15 PHP
使用PHP导出Redis数据到另一个Redis中的代码
2014/03/12 PHP
javascript 动态添加事件代码
2008/11/30 Javascript
新鲜出炉的js tips提示效果
2011/04/03 Javascript
自己动手制作jquery插件之自动添加删除行的实现
2011/10/13 Javascript
js获取url中指定参数值的示例代码
2013/12/14 Javascript
js与jquery获取父元素,删除子元素的两种不同方法
2014/01/09 Javascript
js动态创建上传表单通过iframe模拟Ajax实现无刷新
2014/02/20 Javascript
JS函数节流和函数防抖问题分析
2017/12/18 Javascript
详解vuex中mapState,mapGetters,mapMutations,mapActions的作用
2018/04/13 Javascript
在vue项目中集成graphql(vue-ApolloClient)
2018/09/08 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
Vue自定义全局Toast和Loading的实例详解
2019/04/18 Javascript
vue相同路由跳转强制刷新该路由组件操作
2020/08/05 Javascript
Ant design vue中的联动选择取消操作
2020/10/31 Javascript
uniapp电商小程序实现订单30分钟倒计时
2020/11/01 Javascript
Python的subprocess模块总结
2014/11/07 Python
Python循环语句中else的用法总结
2016/09/11 Python
Python标准库之collections包的使用教程
2017/04/27 Python
python中安装模块包版本冲突问题的解决
2017/05/02 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
2017/11/14 Python
Python学习之用pygal画世界地图实例
2017/12/07 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
2019/10/14 Python
记一次pyinstaller打包pygame项目为exe的过程(带图片)
2020/03/02 Python
Python json模块与jsonpath模块区别详解
2020/03/05 Python
python如何查看网页代码
2020/06/07 Python
Python中的流程控制详解
2021/02/18 Python
日本无添加化妆品:HABA
2016/08/18 全球购物
美国彩妆品牌:Coastal Scents
2017/04/01 全球购物
瑞典首都斯德哥尔摩的多元奢侈时尚品牌:Acne Studios
2017/07/09 全球购物
大学生就业自荐书
2014/06/16 职场文书
运动会广播稿200米(5篇)
2014/10/15 职场文书
幼儿园老师新年寄语2015
2014/12/08 职场文书
cf战队宣传语
2015/07/13 职场文书
2015七夕情人节宣传语
2015/07/14 职场文书
浅谈resultMap的用法及关联结果集映射
2021/06/30 Java/Android