$.ajax 发送file类型参数

使用ajax向后台发送数据时其中的图片数据的参数类型为file,属于对象,而不是一个字符串值。导致错误的出现

var formData = new FormData();

formData.append("file",$("#dcim1")[0].files[0]);

formData.append("real_name", $("#name").val());

 

首先看是否由于参数书写错误导致上述问题,如果误写成对象请修改相应参数类型。

如果确定要上传的数据之一就是对象型,那么请在ajax参数里加入

processData: false

contentType : false

 

$.ajax({

url : Url,

type : 'POST',

data : formData,

// 告诉jQuery不要去处理发送的数据

processData : false,

// 告诉jQuery不要去设置Content-Type请求头

contentType : false,

dataType: "json",

success: function(data) {

    ..。

}

完成后请重新提交测试。

var form = new FormData();
 form.append("Filedata", "要传的文件");
                    $.ajax({
                        type: "POST",
                        url: top.$.rootUrl + '/ERP/ERP_Material/SaveImg',
                        data: form,
                        dataType: 'json',
                        success: function (res) {
                            if (res.code == 200) {
                                $('#CommodityImages').val(res.data.path);
                            } else {
                                learun.alert.error(res.info);
                            }
                        },
                        cache: false,
                        //processData
                        //默认情况下会将发送的数据序列化以适应默认的内容类型application/x-www-form-urlencoded
                        //如果想发送不想转换的的信息的时候需要手动将其设置为false
                        processData: false,
                        //contentType
                        //contentType 主要设置你发送给服务器的格式
                        contentType: false,
                    });

 

posted @ 2022-05-17 20:06  曲琦  阅读(783)  评论(0编辑  收藏  举报