我一直在尝试使用enctype =“ multipart / form-
data”提交表单。我有此设置,因为一旦我确定了用于文本输入的Ajax提交,表单将涉及jpeg / png上传。
当使用html形式的动作引用脚本时,php可以正常工作。
下方的jquery似乎正确检索了表单数据,因为警报行显示:productName = Test + Name&productDescription = Test + Description&OtherProductDetails =
通过jquery成功函数打印到我的HTML的返回数据是php错误,内容为:未定义索引:productName
删除contentType:false可解决此问题。
当我用谷歌jquery / ajax multipart / form-
data提交时,命中至少主要包括’contentType:false’。请有人可以向我解释原因吗?
jQuery API文档说:contentType(默认值:’application / x-www-form-urlencoded; charset =
UTF-8’)类型:String将数据发送到服务器时,请使用此内容类型。
为什么要提交多部分/表单数据,我们需要将其设置为false?什么时候才需要设置错误的设置?
jQuery:
$("#addProductForm").submit(function (event) {
event.preventDefault();
//grab all form data
var formData = $(this).serialize();
$.ajax({
url: 'addProduct.php',
type: 'POST',
data: formData,
async: false,
cache: false,
contentType: false,
processData: false,
success: function (returndata) {
$("#productFormOutput").html(returndata);
alert(formData);
},
error: function () {
alert("error in ajax form submission");
}
});
return false;
});