js ajaxfileupload.js上传报错的解决方法
来源: 阅读:1443 次 日期:2016-07-06 09:22:16
温馨提示: 小编为您整理了“js ajaxfileupload.js上传报错的解决方法”,方便广大网友查阅!

这篇文章主要为大家详细介绍了js ajaxupload.js上传报错的解决方法,感兴趣的小伙伴们可以参考一下

相信大家在工作中经常用到文件上传的操作,因为我是搞前端的,所以这里主要是介绍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] ); 

        } 

  }

以上就是面对ajaxupload.js上传报错问题的解决方法,希望能帮助大家解决困难

更多信息请查看网络编程
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!

2025国考·省考课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map