+
95
-

回答

var form = $("#form_id")[0];

var oFile = $("#media").get(0).files[0];

var formData = new FormData(form);

//FormData可以一次性获取form表单的全部内容

formData.append("name","名字"); //追加非form表单的内容

formData.append("media", oFile); //上传文件

console.log(formData.get("name")); //输出需要一个一个的单独获取,而无法使用console.log(formData); 一次性全部输出

$.ajax({

url: "urlAddress",

data:formData,

type: "post",

dataType: "json", //jsonp会把请求类型强制转换为get请求

contentType: false,

//contentType: application/x-www-form-urlencoded(默认)  multipart/form-data(用于文件上传) application/json(PHP后台无法使用$_POST接收到数据)

processData: false,

async: true, //异步请求

cache: false, //是否缓存

beforeSend: function() {

    // 可添加请求加载等待效果

},

success: function(data) {

    // 请求成功

},

error: function(jqXHR, textStatus, errorThrown){

    // 请求失败

}

});

网友回复

我知道答案,我要回答