日期:2014-05-16  浏览次数:20771 次

ajaxfileupload 异步上传图片返回无法进入success,error

ajaxfileupload 异步上传图片返回无法进入error,控制台打印报错如下:

Uncaught TypeError: Object function (a,b){return new e.fn.init(a,b,h)} has no method 'handleError'

主要是jquery版本的问题,需要更高的jquery版本

后来通过想ajaxfileupload.js加入如下代码解决

?

?

handleError: function( s, xhr, status, e ) {
    // If a local callback was specified, fire it
    if ( s.error ) {
        s.error.call( s.context || window, xhr, status, e );
    }
    // Fire the global callback
    if ( s.global ) {
        (s.context ? jQuery(s.context) : jQuery.event).trigger( "ajaxError", [xhr, s, e] );
    }
}, 
?

?

如果无法进入success,看看是否是dataType 的类型返回不匹配

我遇到的情况是dataType='json';

后台返回数据代码如下:

?

Gson gson = new Gson();

Map map = new HashMap();
            map.put("photoId", photo.getPhotoId());
            map.put("photopath", TargetCommentsPhotopathHelper.getPhotopath_x200(photo.getPath()));
            
            String gsonStr = gson.toJson(map);
            PrintWriter out = response.getWriter();
            out.print(gsonStr);
?

这样js会进error,不进success,主要是json返回的数据结构不对,可以让返回正确结构或修改dataType='text';再自行解析