国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

使用jquery Ajax實現上傳附件功能

來源:懂視網 責編:小采 時間:2020-11-27 22:05:56
文檔

使用jquery Ajax實現上傳附件功能

使用jquery Ajax實現上傳附件功能:用過jquery的Ajax的人肯定都知道,Ajax的默認編碼方式是application/x-www-form-urlencoded,此編碼方式只能編碼文本類型的數據,因此Ajax發送請求的時候,會把data序列化成 一個個String類型的鍵值對,此種傳輸數據的方式能夠滿足大部分應用場景,然而當
推薦度:
導讀使用jquery Ajax實現上傳附件功能:用過jquery的Ajax的人肯定都知道,Ajax的默認編碼方式是application/x-www-form-urlencoded,此編碼方式只能編碼文本類型的數據,因此Ajax發送請求的時候,會把data序列化成 一個個String類型的鍵值對,此種傳輸數據的方式能夠滿足大部分應用場景,然而當

用過jquery的Ajax的人肯定都知道,Ajax的默認編碼方式是”application/x-www-form-urlencoded“,此編碼方式只能編碼文本類型的數據,因此Ajax發送請求的時候,會把data序列化成 一個個String類型的鍵值對,此種傳輸數據的方式能夠滿足大部分應用場景,然而當傳輸的數據里有附件的時候,此序列化機制便是我們的絆腳石。Ajax本身的序列化機制的硬傷歸其原因在于在html4的時代,沒有FileReader接口,在頁面里無法讀取File(Blob)文件,用document.getElementById("文件控件的id").value只能拿到文件的name,因此去序列化去編碼它也無從談起(個人觀點,有不同意見的歡迎給我留言)。

眾所周知,用form提交表單的時候,有附件的時候,只要設置form的enctype="multipart/form-data",便可以上傳附件。于是博主想到,若是能用Ajax提交一個form,那上傳附件豈不是變的簡單,再也不需要使用類似AjaxFileUpload之類的插件來作上傳。html5讓這一切便的簡單。

FormData是html5的接口,使用它一行代碼便可以拿到整個form表單對象:

     var form = new FormData(document.getElementById("form"));

然后我們拿著這個form對象,去賦給Ajax的data,并且阻止它將參數轉成成String類型的鍵值對,此舉需要設置processData屬性為false,此屬性默認為true;同時設置Ajax的編碼方式為false(contentType: false),在form表單里已經設置了編碼方式,Ajax的編碼機制已經不需要,這樣我們就可以用Ajax去提交一個form對象,從而解決表單有附件的問題。需要注意的是,務必將Ajax的提交方式,設置為post,get請求只能攜帶幾kb的數據。若是不設置processData為false,去提交帶附件的form同樣是提交不上去的,它的序列化機制是硬傷。所以提交的時候,只能不使用它的序列化機制。

一言以蔽之:借Ajax的殼,去提交form。

示例如下:

<!DOCTYPE html>
<html>
<head>
 <script src="js/jquery-1.9.1.min.js"></script>
 <meta charset="utf-8" />
 <title>Ajax提交form</title>
 <script type="text/javascript">
 function test(){
 var form = new FormData(document.getElementById("form"));
 $.ajax({
 url:"接口地址",
 type:"post",
 data:form,
 cache: false,
 processData: false,
 contentType: false,
 success:function(data){
 alert("操作成功!");
 },
 error:function(e){
 alert("網絡錯誤,請重試!!");
 }
 }); 
 }
</script>
</head>
<body>
<form id="form" enctype="multipart/form-data">
 <input type="text" id="name" name="name" />
 <input type="text" id="phone" name="phone" />
 <input type="text" id="content" name="content" />
 <input type="text" id="price" name="price" />
 <input type="text" id="ifPhone" name="ifPhone" />
 <input type="text" id="ifCerName" name="ifCerName" />
 <input type="text" id="endTime" name="endTime" />
 <input type="text" id="type" name="type" />
<input type="file" id="fileAttach" name="fileAttach" />
<input type="button" onclick="test()" value="上傳" />
</form>
</body>
</html>

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

使用jquery Ajax實現上傳附件功能

使用jquery Ajax實現上傳附件功能:用過jquery的Ajax的人肯定都知道,Ajax的默認編碼方式是application/x-www-form-urlencoded,此編碼方式只能編碼文本類型的數據,因此Ajax發送請求的時候,會把data序列化成 一個個String類型的鍵值對,此種傳輸數據的方式能夠滿足大部分應用場景,然而當
推薦度:
標簽: 文件 附件 功能
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 国产福利一区二区三区 | 久久精品视频观看 | 日韩精品第一页 | 亚洲欧美日韩综合在线播放 | 日韩欧美在线视频 | 欧美网站在线看 | 国产未成女年一区二区 | 日韩电影中文字幕在线网站 | 国产欧美精品综合一区 | 欧美日韩成人在线 | 欧美日韩一区二区三区久久 | 黄视频网站在线看 | 亚洲国产精品热久久 | 婷婷综合久久中文字幕蜜桃三电影 | 热久久国产 | 亚洲视频第一页 | 日韩欧美91 | 一区二区三区精品牛牛 | 国产精品福利久久久久久小说 | 久久精品国产亚洲精品2020 | 最新欧美日韩 | 成人毛片一区二区三区 | 国产一级高清视频免费看 | 亚洲精彩视频 | 国产精品视频一区二区三区w | 亚洲日韩区在线电影 | 国产一区二区三区在线 | 在线欧美色图 | 国产成人+综合亚洲+天堂 | 日韩在线视频免费播放 | 国产免费一区二区 | 91麻豆国产精品91久久久 | 亚洲第一区视频在线观看 | 国模双双大尺度炮交g0go | 国产一区精品在线 | 日韩欧美一区二区三区在线观看 | 在线免费国产视频 | 日韩精品123 | 国产精品手机视频一区二区 | 日本vs欧美一区二区三区 | 久久亚洲伊人成综合人影院 |