function ajaxFileUpload() {
// var callback = function(result) {
// var jsonObj = {};
// jsonObj.Rows = result.resourceList;
// resouceGrid.set({ data: jsonObj });
// };
// var para = {nodeId:$("#nodeId").val(),};
// $.post($('#initPath').val() + '/ResourceController.do?method=imgUpload', para, callback);
$.ajaxFileUpload
(
{
url: $('#initPath').val() + '/ResourceController.do?method=imgUpload&nodeId=' + $("#nodeId").val(),
secureuri:false,
fileElementId:'imgFile',
dataType: 'text',
success: function (data, status)
{
debugger;
if(typeof(data.error) != 'undefined')
{
if(data.error != '')
{
alert(data.error);
}else
{
alert(data.msg);
}
}
},
error: function (data, status, e)
{
debugger;
alert(e);
}
}
);
return false;
// var callback = function(result) {
// var jsonObj = {};
// jsonObj.Rows = result.resourceList;
// resouceGrid.set({ data: jsonObj });
// };
// var para = {nodeId:$("#nodeId").val(),};
// $.post($('#initPath').val() + '/ResourceController.do?method=imgUpload', para, callback);
$.ajaxFileUpload
(
{
url: $('#initPath').val() + '/ResourceController.do?method=imgUpload&nodeId=' + $("#nodeId").val(),
secureuri:false,
fileElementId:'imgFile',
dataType: 'text',
success: function (data, status)
{
debugger;
if(typeof(data.error) != 'undefined')
{
if(data.error != '')
{
alert(data.error);
}else
{
alert(data.msg);
}
}
},
error: function (data, status, e)
{
debugger;
alert(e);
}
}
);
return false;
}
==================
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] );
- }
- },
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);
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';再自行解析