1. 程式人生 > >關於jQuery使用serializeArray()序列化表單資料,使用FormData()實現AJAX請求的問題

關於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()訪問伺服器的)");
            });