formData使用總結


1.formData基本使用

//可以從form元素初始化一個FormData對象,或者new一個空對象
var formData = new FormData([fromElement]);

//可以添加一個新的鍵值對,從form初始化或空對象均可
formData.append(key,value);

//formData上傳文件,form要設置enctype為multipart/form-data

<form id="uploadForm" enctype="multipart/form-data">
    <input id="file" type="file" name="file"/>
    <button id="upload" type="button">upload</button>
</form>

2.xhr使用formData

var newFormData = new FormData(someFormElement);
var formElement = document.getElementById("myFormElement");
var oReq = new XMLHttpRequest();
oReq.open("POST", "submitform.php");
oReq.send(new FormData(formElement));

還可以在已有表單數據的基礎上,繼續添加新的鍵值對,如下:

var formElement = document.getElementById("myFormElement");
formData = new FormData(formElement);
formData.append("serialnumber", serialNumber++);
oReq.send(formData);

3.jquery使用formData

$.ajax({
    url: 'upload01.php',
    method: 'POST',
    data: formData,
    contentType: false,//必須
    processData: false,//必須
    cache: false //上傳文件不需要緩存
})

參數說明:
contentType
jquery ajax的默認值為'application/x-www-form-urlencoded; charset=UTF-8',
如果有input type=“file”,則contentType應該為‘multipart/form-data’,設置為false,不讓
jquery設置contentType

processData
jQuery會處理發送的數據,將數據按照'application/x-www-form-urlencoded'的
要求轉換為查詢字符串,如果要發送的數據是DOMDocument或者不需要處理,就可以設置為false不讓jQuery
轉換數據,我們這里要發送的數據其實就是DOMDocument

dataType
不要設置為json,讓jquery根據http響應頭的contentType去判斷,返回一個合適的數據類型

4.vue-resource使用formData

var formData = new FormData();
formData.append('foo', 'bar');

this.$http.post('/api', formData)

5.axios使用formData

6.superAgent使用formData


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM