$.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, });