今天遇到了一个问题:用插件ajaxFileUpload上传图片并在data中传参数时,后台怎么都不能接收到值,而且前台Js报错,都走不到后台的情况。
一、代码如下
$('#saveBtn').click(function () {
//ajaxFileUpload不能传data,需要修改ajaxFileUpload。js代码
var ajaxData=JSON.stringify(uploadData);
$.ajaxFileUpload({
url:"TbSysUserPhotoActionAjax_insertOrUpdate.action", //文件上传到哪个地址,告诉ajaxFileUpload
secureuri: false, //一般设置为false
fileElementId: 'uploadImgBtn', //文件上传控件的Id
dataType: 'json', //返回值类型 一般设置为json
data:{name:"allon",age:17},
success: function (data, status){ //服务器成功响应处理函数
if(data.flag=='error'){
alert("保存失败!",0);
return;
}else if(data.flag=='success'){
alert("保存成功!",1);
}
}
});
});
这样的情况下,JS报错
说明是data里面的参数出现了问题,网上找了找,发现是ajaxFileUpload插件的问题,该插件的data只能传输json串,不能传对象和散列参数。
二、data中传的参数改一下就好了
var ajaxData=JSON.stringify(uploadData);
$.ajaxFileUpload({
url:"TbSysUserPhotoActionAjax_insertOrUpdate.action", //文件上传到哪个地址,告诉ajaxFileUpload
secureuri: false, //一般设置为false
fileElementId: 'uploadImgBtn', //文件上传控件的Id
dataType: 'json', //返回值类型 一般设置为json
data:{ajaxData:ajaxData},
success: function (data, status){ //服务器成功响应处理函数
if(data.flag=='error'){
alert("保存失败!",0);
return;
}else if(data.flag=='success'){
alert("保存成功!",1);
}
}
});
其中:uploadData是对象,转换成json字符串就好了,后台接收就然后再处理就OK了。另外网上说可以修改ajaxFileUpload.js代码也可以做成正常的data传参。