ajax异步提交表单有几种方法。
1,不利用表单,通过拼接字符串data 进行提交数据。此方法如果想上床图片。需要借助HTML5 FileReader 把图片转换成base64字符串通过隐藏域传值。这样有把base64字符串传到后台,base64字符串中的+会在提交的时候被转义。可以吧base64图片字符串进行加密再解密(
encodeURIComponent()
)
2, 利用表单提交。通过$("#from").serialize() 把表单元素拼接成查询字符串进行提交。此种方法如果想提交图片。同方法1一样需要通过 FileReader 把图片转换成base64图片字符串再提交。这种提交方式同样base64图片字符串中的+会被转义
3,利用表单提交,通过FormData 把表单 var data=new FormData($("#form"));
$.ajax({
url:url,
data:data,
dataType:"json",
type:"post",
processData:false,
contentType:false,
success:function(m){
}
});通过此方法异步提交如正常提交表单,表单中有图片上传,表单也可以不用 enctype="form-data/multipulty"; 想用base64图片上传也可以。base64图片字符串中的+不会被转义