摘要:利用對象,我們可以通過用一些鍵值對來模擬一系列表單控件,我們還可以使用的方法來異步的提交這個表單。比起普通的,使用的最大優點就是我們可以異步上傳一個二進制文件圖片壓縮文件等。
XMLHttpRequest Level 2添加了一個新的接口FormData。利用FormData對象,我們可以通過js用一些鍵值對來模擬一系列表單控件,我們還可以使用XMLHttpRequest的send()方法來異步的提交這個"表單"。比起普通的ajax,使用FormData的最大優點就是我們可以異步上傳一個二進制文件(圖片、壓縮文件等)。
上傳文件例子 原生寫法html
jsfunction sendForm(){ var fr = document.getElementById("form1") var fd = new FormData(fr);//使用HTML表單來初始化一個FormData對象 fd.append("file", document.getElementById("file").files[0]); var xhr = new window.XMLHttpRequest(); xhr.upload.addEventListener("progress", uploadProgress, false); xhr.addEventListener("load", uploadComplete, false); xhr.addEventListener("error", uploadFailed, false); xhr.addEventListener("abort", uploadCanceled, false); console.log(fd) xhr.open("POST", "/session/sendImg?subID=3&subsID=2&ssID=163"); xhr.send(fd); } //+ uploadComplete 上傳結束函數 //+ uploadFailed 上傳錯誤函數 //+ uploadCanceled 終止函數JSLite 方法
使用JSLite來發送FormData,但必須要正確的設置相關選項(jQuery是一樣的玩兒)
jsfunction sendForm(){ var fd = new FormData(); fd.append("file",$("#file")[0].files[0]); fd.append("name",$("#name").val()); $.ajax({ type:"POST", dataType:"text", processData: false, // 告訴JSLite不要去處理發送的數據 contentType: false, // 告訴JSLite不要去設置Content-Type請求頭 data:fd, url:"/session/sendImg?subID=3&subsID=2&ssID=163", success:function(data){ console.log("success:",data) }, error:function(d){ console.log("error:",d) } }) }append()
瀏覽器兼容性給當前FormData對象添加一個鍵/值對
void append(DOMString name, Blob value, optional DOMString filename);
void append(DOMString name, DOMString value);
MDN 參考地址
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | 7+ | 4.0 (2.0) | 10+ | 12+ | 5+ |
支持filename參數 (Yes) | 22.0 | (22.0) | ? | ? | ? |
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/85524.html
摘要:轉載大牛的分析,這將是的方向。域名分析據統計,目前全世界的網站使用它。的市場份額不斷下降,以為基礎的標準語法,正得到越來越廣泛的支持。下面就探討如何用標準語法,取代的一些主要功能,做到。 轉載大牛的分析,這將是JSLite的方向。前人栽樹后人乘涼,jQuery為我們制定了一套接口標準,我們繼續為此努力。域名:JSLite.io jQuery 分析 據統計,目前全世界57.3%...
摘要:極大地簡化了編程。與有著類似的,通用庫只有,手機上每一都是錢。可以通過下面的標記把添加到網頁中請注意,標簽應該位于頁面的部分。 簡介 JSLite 是一個 JavaScript 庫。 JSLite 極大地簡化了 JavaScript 編程。 JSLite 只針對先進瀏覽器支持(HTML5,CSS3)移動端瀏覽器編寫。 JSLite 使用js新方法實現j...
摘要:與有著絕大部分類似的,通用庫只有,手機上每一都是錢。目前及的最新版已經支持。在這個函數中,原來的對象是無效的。與方法相同,接受一個標準格式的字符串,并返回解析后的對象。這有點像,但是是相反的方式。 [JSLite.io] showImg(https://img.shields.io/github/issues/JSLite/JSLite.svg); showImg(https://im...
摘要:當用戶完成選擇文件動作時,提交子頁面中的。從此我們上傳文件就歡欣鼓舞的來找了。因為的核心是對象,異步的實現是通過一個對象,一般簡稱該對象對。這些回答基于自己理解,如有不妥,希望路過的大神輕噴,指正。 背景 平時工作中經常會遇到需要上傳文件的情況,如果你用ant design 或者element ,它們都提供了上傳的組件。 我們分別來看一下element 和 antd 手動上傳怎么處理:...
閱讀 909·2021-09-09 09:32
閱讀 2849·2021-09-02 10:20
閱讀 2685·2021-07-23 11:24
閱讀 824·2019-08-30 15:54
閱讀 3631·2019-08-30 15:54
閱讀 1346·2019-08-30 11:02
閱讀 2844·2019-08-26 17:40
閱讀 1122·2019-08-26 13:55