今天遇到了一个问题:用插件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报错

ajaxFileUpload无法上传data传参的问题

ajaxFileUpload无法上传data传参的问题


说明是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传参。

相关文章: