摘要:利用對(duì)象,我們可以通過用一些鍵值對(duì)來模擬一系列表單控件,我們還可以使用的方法來異步的提交這個(gè)表單。比起普通的,使用的最大優(yōu)點(diǎn)就是我們可以異步上傳一個(gè)二進(jìn)制文件圖片壓縮文件等。
XMLHttpRequest Level 2添加了一個(gè)新的接口FormData。利用FormData對(duì)象,我們可以通過js用一些鍵值對(duì)來模擬一系列表單控件,我們還可以使用XMLHttpRequest的send()方法來異步的提交這個(gè)"表單"。比起普通的ajax,使用FormData的最大優(yōu)點(diǎn)就是我們可以異步上傳一個(gè)二進(jìn)制文件(圖片、壓縮文件等)。
上傳文件例子 原生寫法html
jsfunction sendForm(){ var fr = document.getElementById("form1") var fd = new FormData(fr);//使用HTML表單來初始化一個(gè)FormData對(duì)象 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 上傳結(jié)束函數(shù) //+ uploadFailed 上傳錯(cuò)誤函數(shù) //+ uploadCanceled 終止函數(shù)JSLite 方法
使用JSLite來發(fā)送FormData,但必須要正確的設(shè)置相關(guān)選項(xiàng)(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不要去處理發(fā)送的數(shù)據(jù) contentType: false, // 告訴JSLite不要去設(shè)置Content-Type請(qǐng)求頭 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()
瀏覽器兼容性給當(dāng)前FormData對(duì)象添加一個(gè)鍵/值對(duì)
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參數(shù) (Yes) | 22.0 | (22.0) | ? | ? | ? |
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/85524.html
摘要:轉(zhuǎn)載大牛的分析,這將是的方向。域名分析據(jù)統(tǒng)計(jì),目前全世界的網(wǎng)站使用它。的市場份額不斷下降,以為基礎(chǔ)的標(biāo)準(zhǔn)語法,正得到越來越廣泛的支持。下面就探討如何用標(biāo)準(zhǔn)語法,取代的一些主要功能,做到。 轉(zhuǎn)載大牛的分析,這將是JSLite的方向。前人栽樹后人乘涼,jQuery為我們制定了一套接口標(biāo)準(zhǔn),我們繼續(xù)為此努力。域名:JSLite.io jQuery 分析 據(jù)統(tǒng)計(jì),目前全世界57.3%...
摘要:極大地簡化了編程。與有著類似的,通用庫只有,手機(jī)上每一都是錢??梢酝ㄟ^下面的標(biāo)記把添加到網(wǎng)頁中請(qǐng)注意,標(biāo)簽應(yīng)該位于頁面的部分。 簡介 JSLite 是一個(gè) JavaScript 庫。 JSLite 極大地簡化了 JavaScript 編程。 JSLite 只針對(duì)先進(jìn)瀏覽器支持(HTML5,CSS3)移動(dòng)端瀏覽器編寫。 JSLite 使用js新方法實(shí)現(xiàn)j...
摘要:與有著絕大部分類似的,通用庫只有,手機(jī)上每一都是錢。目前及的最新版已經(jīng)支持。在這個(gè)函數(shù)中,原來的對(duì)象是無效的。與方法相同,接受一個(gè)標(biāo)準(zhǔn)格式的字符串,并返回解析后的對(duì)象。這有點(diǎn)像,但是是相反的方式。 [JSLite.io] showImg(https://img.shields.io/github/issues/JSLite/JSLite.svg); showImg(https://im...
摘要:當(dāng)用戶完成選擇文件動(dòng)作時(shí),提交子頁面中的。從此我們上傳文件就歡欣鼓舞的來找了。因?yàn)榈暮诵氖菍?duì)象,異步的實(shí)現(xiàn)是通過一個(gè)對(duì)象,一般簡稱該對(duì)象對(duì)。這些回答基于自己理解,如有不妥,希望路過的大神輕噴,指正。 背景 平時(shí)工作中經(jīng)常會(huì)遇到需要上傳文件的情況,如果你用ant design 或者element ,它們都提供了上傳的組件。 我們分別來看一下element 和 antd 手動(dòng)上傳怎么處理:...
摘要:我們將教你一個(gè)請(qǐng)求上傳多文件的例子。然而,你可以用同樣的辦法上傳單個(gè)文件。在功能方面的進(jìn)步,消除供開發(fā)者使用第三方瀏覽器插件來處理文件上傳的需要。 AJAX的采用標(biāo)志著的Web歷史上的一個(gè)巨大飛躍。與Web服務(wù)器通信而不需要重新加載頁面的能力已改變了Web應(yīng)用程序構(gòu)建。動(dòng)態(tài)網(wǎng)站的概念形成以后,AJAX(XMLHttpRequests) 技術(shù)發(fā)展迅速。 近年來XMLHttpRequest...
閱讀 924·2021-09-09 09:32
閱讀 2898·2021-09-02 10:20
閱讀 2711·2021-07-23 11:24
閱讀 838·2019-08-30 15:54
閱讀 3640·2019-08-30 15:54
閱讀 1353·2019-08-30 11:02
閱讀 2855·2019-08-26 17:40
閱讀 1136·2019-08-26 13:55