FormData對象,能夠把全部表單元素的name與value組成一個queryString,提交到後臺。 在使用ajax提交時,使用FormData對象能夠減小拼接queryString的工做量(queryString是查詢字符串,http查詢字符串由url中?後面的值指定)javascript
當頁面上的form以GET方式向頁面發送請求數據時 (如數據含有不安全字符,則瀏覽器先將其轉換成16進制的字符再傳送,如空格被轉換成%20時 ) ,web server 將請求數據放入一名爲QUERY_STRING的環境變量中。 Request.QueryString 方法是從這一環境變量中取出相應的值,並將被轉成16進制的字符還原html
var f = document.getElementById('upload').files; this.$data.newAppPath = f[0].name; this.$data.fileSize = f[0].size; this.$data.newApp.file = f[0];
var f = document.getElementById('upload').files; this.$data.newAppPath = f[0].name; this.$data.fileSize = f[0].size; this.$data.newApp.file = f[0];
this.$http({
url:'/if/appsign_upload', method:'POST', body:fd }).then(
FormData類型實際上是在XMLHttpRequest 2級定義的,它是爲序列化表以及建立與表單格式相同的數據(固然是用於XHR傳輸)提供便利。java
建立一個formData對象實例有幾種方式web
一、建立一個空對象
實例ajax
var formData = new FormData();
此時能夠調用append()方法來添加數據數組
二、使用已有的表單來初始化一個對象實例瀏覽器
假如如今頁面已經有一個表單安全
咱們可使用這個表單元素做爲初始化參數,來實例化一個formData對象app
首先,咱們要明確formData裏面存儲的數據形式,一對key/value組成一條數據,key是惟一的,一個key可能對應多個value。若是是使用表單初始化,每個表單字段對應一條數據,它們的HTML name屬性即爲key值,它們value屬性對應value值。異步
key | value |
---|---|
k1 | [v1,v2,v3] |
k2 | v4 |
咱們能夠經過get(key)/getAll(key)來獲取對應的value,
咱們能夠經過append(key, value)來添加數據,若是指定的key不存在則會新增一條數據,若是key存在,則添加到數據的末尾
咱們能夠經過set(key, value)來設置修改數據,若是指定的key不存在則會新增一條,若是存在,則會修改對應的value值。
咱們能夠經過has(key)來判斷是否對應的key值
經過delete(key),來刪除數據
咱們能夠經過entries()來獲取一個迭代器,而後遍歷全部的數據,
能夠看到返回迭代器的規則
每調用一次next()返回一條數據,數據的順序由添加的順序決定
返回的是一個對象,當其done屬性爲true時,說明已經遍歷完全部的數據,這個也能夠做爲判斷的依據
返回的對象的value屬性以數組形式存儲了一對key/value,數組下標0爲key,下標1爲value,若是一個key值對應多個value,會變成多對key/value返回
咱們也能夠經過values()方法只獲取value值
咱們能夠經過xhr來發送數據
這種方式能夠來實現文件的異步上傳。