久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

一文講解ajax實現無刷新上傳和下載(代碼詳解)

之前的文章《一招教你怎么使用window掛載EFI分區(附代碼)》中,給大家介紹了怎么使用window掛載EFI分區。下面本篇文章給大家了解ajax實現無刷新上傳和下載,有需要的朋友可以參考一下,希望對你們有所助。

一文講解ajax實現無刷新上傳和下載(代碼詳解)

關于ajax無刷新上傳和下載

這是一個沒什么含量但是又用的比較多又不得不說的問題,其實真的不想說,因為沒什么好說的。

關于上傳

使用Flash, ActiveX上傳 ,略…

自己寫XMLHttpRequest

// 準備FormData var formData = new FormData(); formData.append("key", value);  // 創建xhr對象 var xhr = new XMLHttpRequest(); // 監聽狀態,實時響應 // xhr 和 xhr.upload 都有progress事件,xhr.progress是下載進度,xhr.upload.progress是上傳進度 xhr.upload.onprogress = function (event) {   if (event.lengthComputable) {     var percent = Math.round(event.loaded / event.total);     console.log("%d%", percent);   } }; // 傳輸開始事件 xhr.onloadstart = function (event) {   console.log("load start"); }; // ajax過程成功完成事件 xhr.onload = function (event) {   console.log("load success");   console.log(xhr.responseText);   var ret = JSON.parse(xhr.responseText);   console.log(ret); }; // ajax過程發生錯誤事件 xhr.onerror = function (event) {   console.log("error"); }; // ajax被取消 xhr.onabort = function (event) {   console.log("abort"); }; // loadend傳輸結束,不管成功失敗都會被觸發 xhr.onloadend = function (event) {   console.log("load end"); }; // 發起ajax請求傳送數據 xhr.open("POST", "/upload", true); xhr.send(formData);

使用Jquery

var formData = new FormData();  formData.append("key", value); //傳的參和值 $.ajax({   url: "XXX",   type: "POST",   data: formData,   contentType: false,   processData: false,   success: function (res) {},   error: function () {}, });

這里要說的就是formData,這個狗屎在IE10之后才開始完整的支持,IE9吖的是個半殘品。所以這要說的是第三種結合formiframe來實現,原理:

隱藏的formiframeformtarget指向iframe,監聽iframe load,來獲取上傳結果。

優點:兼容該死的ie低版本瀏覽器

缺點:跨域上傳不支持,還需自定義反向代理,因為iframe onload不支持跨域

上傳接口API: 成功返回:

{   code: 1,   msg: '上傳成功' }

失敗返回:

{   code: 0,   msg: '上傳失敗' }

HTML:

<form   action="xxxx"   target="upload"   enctype="multipart/form-data"   method="post"   style="display:none; " >   ... .. </form> <iframe name="upload" id="upload"></iframe>  <!-- JS: --> <script>   var fm = document.getElementById("upload");   var load = function () {     var doc = fm.contentWindow || fm.contentDocument;     if (doc.document) doc = doc.document;     var content = doc.body.textContent; //此處的值取決與API 接口返回的值     var data = JSON.parse(content);     console.log(content);   };   // 兼容低版本瀏覽器監聽判斷   fm.attachEvent ? fm.attachEvent("onload", load) : (fm.onload = load); </script>

關于下載:

暴力一點的下載直接

window.open("/rest/donwload/abcd.do");

優點:代碼量少。

缺點:現代瀏覽器會自動識別文件類型,如pdf,會自動在瀏覽器打開

優雅一點的下載:

function download() {   var a = document.createElement("a");   var url = "download/?filename=aaa.txt";   var filename = "data.xlsx";   a.href = url;   a.download = filename;   a.click(); }

優點:解決了暴力下載自動打開文件的缺陷

缺點:不支持post方式下載

使用XMLHttpRequest,BLOB方式

function download() {   var url = "download/?filename=aaa.txt";   var xhr = new XMLHttpRequest();   xhr.open("GET", url, true); // 也可以使用POST方式,根據接口   xhr.responseType = "blob"; // 返回類型blob   // 定義請求完成的處理函數,請求前也可以增加加載框/禁用下載按鈕邏輯   xhr.onload = function () {     // 請求完成     if (this.status === 200) {       // 返回200       var blob = this.response;       var reader = new FileReader();       reader.readAsDataURL(blob); // 轉換為base64,可以直接放入a表情href       reader.onload = function (e) {         // 轉換完成,創建一個a標簽用于下載         var a = document.createElement("a");         a.download = "data.xlsx";         a.href = e.target.result;         $("body").append(a); // 修復firefox中無法觸發click         a.click();         $(a).remove();       };     }   };   // 發送ajax請求   xhr.send(); }

優點:支持post方式

缺點:還是該死的兼容性問題

所以處理兼容性最好的方式 還是form結合iframe(不考慮兼容性當然還是XMLHttpRequest最好),這種方式不論是上傳和下載 都是完美支持的。上傳下載通用。

最好的上傳下載方式: 你們的Boss不要求兼容ie低版本瀏覽器

[完]

推薦學習:AJAX視頻教程

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
国产成人免费精品| 国产一区二区三区四区五区 | 国产精品99免费看| 在线视频观看日韩| 西西人体一区二区| 日本国产亚洲| 国产精品蜜芽在线观看| 激情综合自拍| 欧美日韩一区自拍| 日韩一区二区三区免费播放| 在线亚洲观看| 国产成人免费av一区二区午夜| 在线精品观看| 精品一区二区三区中文字幕| 日韩av网站在线免费观看| 亚洲色图国产| 国产精品va| 国产一区久久| 国产欧美日韩亚洲一区二区三区| 国产aⅴ精品一区二区三区久久| 精品欧美激情在线观看| 免费在线观看精品| 成人午夜网址| 欧美日韩精品一区二区三区视频 | 999国产精品999久久久久久| 欧美特黄一区| 电影91久久久| 日本午夜精品久久久久| 亚洲国产专区| 97人人精品| 国产精品大片免费观看| 日韩深夜视频| 蜜桃91丨九色丨蝌蚪91桃色| 久久av超碰| 国产一在线精品一区在线观看| 日韩成人精品一区二区三区| 欧美一区三区| 国产精品久久久免费| 香蕉久久久久久久av网站| 麻豆国产精品| 国产精品3区| 日韩成人综合| 极品日韩av| 亚洲三级网址| 国产日韩高清一区二区三区在线| 日韩成人在线看| 美女高潮久久久| 亚洲午夜久久久久久尤物 | 国产精品三级| 国产美女久久| 午夜在线播放视频欧美| 欧美一区在线观看视频| 精品丝袜在线| 亚洲精品高潮| 日韩精品免费一区二区在线观看| 精品国产美女a久久9999| 国产va免费精品观看精品视频| 麻豆一区二区在线| 成人看片网站| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美视频一区| 欧洲一区二区三区精品| 国产亚洲激情| 久久av影视| 91久久久精品国产| 国产日韩欧美一区在线| 69堂精品视频在线播放| 蜜臀av国产精品久久久久 | 性色av一区二区怡红| 欧美激情精品| 欧美日韩亚洲一区在线观看| 免费的成人av| 玖玖玖国产精品| 午夜在线视频一区二区区别 | 国产精品一区免费在线| 亚洲人妖在线| 在线观看亚洲精品福利片| 好看的av在线不卡观看| 国户精品久久久久久久久久久不卡 | 日韩动漫一区| 亚洲精品看片| 欧美一区二区三区久久| 欧美综合精品| 你懂的亚洲视频| 成人午夜在线| 久久男女视频| 日韩一区二区久久| 综合一区在线| 欧美成a人片免费观看久久五月天| 日韩综合一区二区三区| 国产欧美日韩影院| 国产精品久久观看| 午夜精品网站| 亚洲人成网站在线在线观看| 国产午夜一区| 日韩一区二区三区免费播放| 国产综合色产| 91成人小视频| 中文字幕高清在线播放| av成人国产| 日本综合视频| 久久国产成人| 91一区二区| 久久国产尿小便嘘嘘| 色一区二区三区四区| 日韩美女国产精品| 蜜臀91精品国产高清在线观看| 91午夜精品| 亚洲午夜久久| 影音国产精品| 久久国产亚洲精品| 精品视频在线观看网站| 蜜臀av一区二区三区| 日韩午夜一区| 欧美丝袜一区| 999国产精品| 99久久精品费精品国产| av亚洲一区二区三区| 国产一区二区三区探花| 亚洲精品高潮| 亚洲精品极品| 视频一区欧美精品| 亚洲一区不卡| 国产精品普通话对白| 午夜久久99| 亚洲丝袜美腿一区| 亚洲精品字幕| 国产精品欧美日韩一区| 国产精品久久亚洲不卡| 青草av.久久免费一区| 久久激五月天综合精品| 国产精品美女在线观看直播| 麻豆国产精品一区二区三区| 精品国产aⅴ| 国产精品久久| 精品国产一区二区三区av片| 国产96在线亚洲| 激情六月综合| 日韩一区免费| 国产成人免费精品| 亚洲欧美日本视频在线观看| 亚洲精品美女91| 成人污污视频| 亚洲欧美高清| 国产精品久久久久久久久久齐齐| 日本在线精品| 石原莉奈在线亚洲二区| 欧美日韩一区二区三区四区在线观看| 麻豆久久一区二区| 日韩免费视频| 五月亚洲婷婷 | 国产日产精品_国产精品毛片| 亚洲精品影视| 国产免费播放一区二区| 国产一区二区三区久久| 国产精品色网| 欧美日韩国产综合网| 久久a爱视频| 国产亚洲欧洲| 日韩激情啪啪| 日韩免费在线| 久久中文字幕一区二区三区| 极品日韩av| 国产日韩视频在线| 午夜欧美在线| 99精品电影| 国产精品一区亚洲| 在线一区免费观看| 人人香蕉久久| 国产精品久久久久9999高清| 九九久久电影| av免费不卡国产观看| 高清在线一区| 青青草伊人久久| 美女福利一区二区三区| 日韩激情一区二区| 久久精品99久久久| 久久av一区| 久久中文亚洲字幕| 日韩一级不卡| 99热精品久久| 日韩中文字幕一区二区高清99| 日韩视频久久| av资源中文在线天堂| 日本不卡的三区四区五区| 人人精品久久| 国产精品呻吟| 99精品电影| 亚洲资源av| 日韩欧美综合| 国产成人在线中文字幕| 亚欧成人精品| 国产精品久久久一区二区| 欧美日韩伊人| 奇米亚洲欧美| 日本欧美不卡| 久久中文字幕av一区二区不卡| 成人欧美一区二区三区的电影| 国产精品白丝一区二区三区| 久久精品国产福利|