我一直在试图用enctype =“multipart / form-data”提交表单。我有这个设置,因为一旦我找出了文本输入的ajax提交,表单将涉及jpeg / png上传。
>使用html格式的动作引用脚本时,PHP工作正常。
>表单数据似乎被下面的jquery正确地检索,因为警报行显示:productName = Test Name& productDescription = Test Description& OtherProductDetails =
>由jquery成功函数打印到我的HTML的返回数据是一个PHP错误,说:Undefined index:productName
> remove contentType:false修复问题。
当我google jquery / ajax multipart / form-data提交时,顶级命中至少主要包括’contentType:false’。请有人向我解释原因吗?
jquery API文档说:
contentType(默认值:’application / x-www-form-urlencoded; charset = UTF-8′)
类型:字符串
将数据发送到服务器时,请使用此内容类型。
为什么我们需要将其设置为虚假的多部分/表单数据提交?
什么时候需要虚假设定?
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;
});