jQuery使用serializeArray()序列化表单数据得到的是一个json对象的数组,而不是真正的json,所以如果对于获取到的结果直接发送给服务器端,服务器端是不能直接通过$_POST[ "]获取到的(服务器端使用PHP语言)。因此需要对serializeArray()获取的数据进行处理,处理方式如下:
var formData= new FormData();
$.each($(".register").serializeArray(),function (i,field) {
formData.append(field.name,field.value);
})
主要是使用each()进行遍历重新append()到formData之中便成为json对象,然后便可以进行AJAX数据传递。
$.ajax({
type:"POST",
url:"insert.php",
data:formData,
contentType:false,
processData:false
}).then(function () {
//成功处理函数
$("#box").html("恭喜你注册成功!(我是通过ajax()访问服务器的)");
},function () {
//失败处理函数
$("#box").html("注册失败!请稍后重试!(我是通过ajax()访问服务器的)");
});