关于jQuery使用serializeArray()序列化表单数据,使用FormData()实现AJAX请求的问题

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()访问服务器的)");
            });


你可能感兴趣的:(JavaScript,jquery)