ajaxFileUpload.js

ajaxFileUpload.js和jquery版本有对应关系,一般不支持大于等于1.8的jquery版本
问题1:如楼主所说,jQuery.handleError is not a function 原因是,经测试handlerError只在jquery-1.4.2之前的
版本中存在,jquery-1.6 和1.7中都没有这个函数了,因此在1.4.2中将这个函数复制到了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] );
        }
    },
问题2:一直得到error ,无法执行指定的success方法。通过追踪ajaxFileUpload的执行过程发现,在调用它自身的uploadHttpData函数时,当执行if(type=="json")    eval("data = "+data);
会抛出异常,导致在处理异常的时候将status = "error" 因此一直执行error方法。
上网查询,得知eval函数是用来执行一段,而并不是如我所想的反解json串
eval("data = "+data);的意思是 将data 赋值给 data参数 ,但是当我返回给页面的是一个简单的字符串,比如"OK" ,时,这样写就抛出异常。最后改为 eval("data = \" "+data+" \" ");即将返回的数据用双引号引起来当作字符串,然后赋给 data 。终于成功了。。。
贴出来,希望可以帮助到其他同样遇到这个问题的人。

<%@ page language="java" contentType="text/html; charset=UTF-8"  
    pageEncoding="UTF-8"%>  
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
<title>Ajax File Uploader Plugin For Jquery</title>  
<script type="text/javascript" src="jquery.js"></script>  
<script type="text/javascript" src="ajaxfileupload.js"></script>  
<script type="text/javascript">  
    function ajaxFileUpload() {  
        $("#loading").ajaxStart(function() {  
            $(this).show();  
        }).ajaxComplete(function() {  
            $(this).hide();  
        });  
  
        $.ajaxFileUpload({  
            url : 'upload',// servlet请求路径  
            secureuri : false,  
            fileElementId : 'fileToUpload',// 上传控件的id  
            dataType : 'json',  
            data : {username : $("#username").val()}, // 其它请求参数  
            success : function(data, status) {  
                if(data.msg) {  
                    alert(data.msg);  
                }  
            },  
            error : function(data, status, e) {  
                alert('上传出错');  
            }  
        })  
  
        return false;  
  
    }  
</script>  
</head>  
  
<body>  
    <h1>Ajax文件上传例子,JAVA版</h1>  
    <img id="loading" src="loading.gif" style="display: none;">  
    <form name="form" action="" method="POST" enctype="multipart/form-data">  
        用户名:<input type="text" id="username" name="username"> <br>  
        <input id="fileToUpload" type="file" size="45" name="fileToUpload"  
            class="input">  
        <button class="button" onclick="return ajaxFileUpload();">上传</button>  
    </form>  
</body>  
</html>


转载于:https://my.oschina.net/yangting880815/blog/490834

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值