簡體   English   中英

如何發送FormData對象?

[英]How To Send FormData object?

  1. 獲取帶有id的表單
  2. 使用表單ID創建formdata
  3. 使用$ .ajax發送數據

我的代碼:

<form id="company">
    <input type="text" name="name" />
    <input type="tel" name="tel" />
    <input type="button" id="send" name="send" value="send" />
</form>


 <script>
        ##get Form id an create form data##
        var testForm = document.getElementById('send');
        testForm.onclick = function(event) {
            var formData = new FormData(document.getElementById('company'));
        ##this is Ajax Method##
                $.ajax({
                    url : './json/company.php',
                    method : 'POST',
                    data : formData,
                    timeout : 10,
                    dataType :'json',
                    success: function(data)
                    {
                        alert("Success");
                    }
                });
        }
    </script>

錯誤:TypeError:FormData.constructor的參數1不是對象

嘗試這個

data : JSON.stringify(formData)

由於表單沒有輸入類型文件,因此應使用serialize函數

$(testForm).click(function(event) {
                event.preventDefault();//don't forget to prevent the default click event from redirecting you from the page
                $.ajax({
                    url : './json/company.php',
                    method : 'POST',
                    data : $('#company').serialize(),
                    timeout : 10,
                    dataType :'json',
                    success: function(data)
                    {
                        alert("Success");
                    }
                });
        });

你錯過了關鍵的選項,jQuery正試圖處理formData,但它不能。
您必須添加processData: false選項,並且您應該避免發送contentType

var testForm = document.getElementById('send');
testForm.onclick = function(event) {
    var formData = new FormData(document.getElementById('company'));
    $.ajax({
        url: './json/company.php',
        method: 'POST',
        data: formData,
        processData: false,
        contentType: false,
        timeout: 10,
        dataType: 'json',
        success: function(data) {
            alert("Success");
        }
    });
}

要使用帶有jquery的formdata,您必須設置正確的選項

var testForm = document.getElementById('send');
testForm.onclick = function(event) {
    var formData = new FormData(document.getElementById('company'));
    $.ajax({
        url : './json/company.php',
        type: "POST",
        data : formData,
        processData: false,
        contentType: false,
        success: function(data)
        {
          alert("Success");
        },
        error: function(jqXHR, textStatus, errorThrown){
            //if fails     
        }
    });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM