2 回答
TA贡献1829条经验 获得超7个赞
您可以传递类似于以下代码的数据。
$("#form0").submit(function (event) {
var dataString;
event.preventDefault();
event.stopImmediatePropagation();
var action = $("#form0").attr("action");
if ($("#form0").attr("enctype") == "multipart/form-data") {
dataString = new FormData($("#form0").get(0));
contentType = false;
processData = false;
} else {
// regular form, do your own thing if you need it
}
$.ajax({
type: "POST",
url: action,
data: dataString,
dataType: "json",
contentType: contentType,
processData: processData,
success: function (data) {
},
error: function (jqXHR, textStatus, errorThrown) {
}
});
});
TA贡献1865条经验 获得超7个赞
您必须使用FormData API在请求中传递表单内容。您可以在点击处理程序中像这样收集它
const form = $(this).closest('form').get(0)
const data = new FormData(form)
然后将以下内容传递给ajax调用
data: data,
processData: false,
contentType: false
代替
data: {
enctype: 'multipart/form-data'
},
processData: false使 jquery 将未经修改的 FormData 实例传递给 XHR,这是文件上传正常工作所必需的。contentType: false将使浏览器multipart/form-data自动设置内容类型。
FormData 现在可以在较旧的浏览器中运行,特别是 IE<10。
- 2 回答
- 0 关注
- 73 浏览
添加回答
举报