H5 FormData對象就模擬一個原始的表單格式的數據,以前上傳文件非得要用個form包起來,就是和後臺約定的一個傳輸數據格式,
FormData就是按照規定的格式,把form中所有表單元素的name與value組裝成一個queryString,省去你手工拼接的工作,如果用
過jquery的話,應該知道有個表單序列號的函數,作用和它是一樣的,不過FormData還提供了更多的操作方法,全部在原型中,
自己本身沒任何的屬性及方法。
demo:
<form enctype="multipart/form-data" id="user_info">
<input id="uname" name="uname">
<input id="age" name="age">
<input id="sex" name="sex">
<input type="file" id="photo" name="photo">
</form>
<script>
var formdata = new FormData(user_info)
//實例FormData對象,傳入form表單id,不傳就是實例一個空對象
formdata.append("height","27") //調用append方法可以接着追加數據,參數兩個,鍵值對形式,相當於手工拼接
var age= formdata.get("age") //調用get()方法可以獲取數據
formdata.delete("sex") //調用delete方法可以刪除數據
還有has(),getAll(),forEach()方法。
$.ajax({
url: 'views/home/save.php',
type: 'POST',
data:
formdata, // 上傳formdata封裝的數據
dataType: 'JSON',
cache: false, // 不緩存
processData: false, // 告訴jQuery不要去處理髮送的數據
contentType: false, // 告訴jQuery不要去設置Content-Type請求頭
success:function (txt) { //成功回調
console.log(txt);
}
});
</script>