摘要:之前都是用原生的寫的請(qǐng)求方式其實(shí)的也可以支持到的,關(guān)鍵是設(shè)置和。方式告訴不要去處理發(fā)送的數(shù)據(jù)告訴不要去設(shè)置請(qǐng)求頭正在進(jìn)行,請(qǐng)稍候成功失敗
FormData對(duì)象
XMLHttpRequest Level 2添加了一個(gè)新的接口FormData.利用FormData對(duì)象,我們可以通過JavaScript用一些鍵值對(duì)來模擬一系列表單控件,我們還可以使用XMLHttpRequest的send()方法來異步的提交這個(gè)"表單".比起普通的ajax,使用FormData的最大優(yōu)點(diǎn)就是我們可以異步上傳一個(gè)二進(jìn)制文件.
所有主流瀏覽器的較新版本都已經(jīng)支持這個(gè)對(duì)象了,比如Chrome 7+、Firefox 4+、IE 10+、Opera 12+、Safari 5+。
之前都是用原生js的XMLHttpRequest寫的請(qǐng)求
xhr.open("POST", uri, true); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { // Handle response. alert(xhr.responseText); // handle response. } }; fd.append("myFile", file); // Initiate a multipart/form-data upload xhr.send(fd);
其實(shí)jquery的ajax也可以支持到的,關(guān)鍵是設(shè)置:processData 和 contentType 。
ajax方式var formData = new FormData(); var name = $("input").val(); formData.append("file",$("#upload")[0].files[0]); formData.append("name",name); $.ajax({ url : Url, type : "POST", data : formData, // 告訴jQuery不要去處理發(fā)送的數(shù)據(jù) processData : false, // 告訴jQuery不要去設(shè)置Content-Type請(qǐng)求頭 contentType : false, beforeSend:function(){ console.log("正在進(jìn)行,請(qǐng)稍候"); }, success : function(responseStr) { if(responseStr.status===0){ console.log("成功"+responseStr); }else{ console.log("失敗"); } }, error : function(responseStr) { console.log("error"); } });
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/79823.html
摘要:比起普通的,使用的最大優(yōu)點(diǎn)就是我們可以異步上傳一個(gè)二進(jìn)制文件。方法二一次性上傳多個(gè)文件如果后臺(tái)接口要求單個(gè)文件,就循環(huán)獲取文件信息提交,使用同步上傳。 歡迎交換友鏈 Lakers Blog--進(jìn)擊的程序媛Github:https://github.com/younglaker微博: 江小湖Laker showImg(https://segmentfault.com/img/bVtcT...
摘要:是發(fā)送的必須是類型注意把設(shè)為,讓不要對(duì)做處理,如果不設(shè)置為,會(huì)把轉(zhuǎn)換為字符串。查看文件上傳的請(qǐng)求頭里,參數(shù)為請(qǐng)求參數(shù)之間的界限標(biāo)識(shí)。也就是說防止覆蓋掉的。 1、data是FormData 發(fā)送的data必須是FormData類型 2、注意processData 把processData設(shè)為false,讓jquery不要對(duì)formData做處理,如果processData不設(shè)置為fals...
摘要:需求當(dāng)上傳的文件相對(duì)較大時(shí),用戶可能需要等待較長的時(shí)間,這個(gè)時(shí)候前端如果沒有任何提示的話,體驗(yàn)不是很好,如果有上傳進(jìn)度提示,就會(huì)好很多。 需求 當(dāng)上傳的文件相對(duì)較大時(shí),用戶可能需要等待較長的時(shí)間,這個(gè)時(shí)候前端如果沒有任何提示的話,體驗(yàn)不是很好,如果有上傳進(jìn)度提示,就會(huì)好很多。而要在上傳過程實(shí)時(shí)顯示上傳進(jìn)度,則需要已上傳的大小和文件總大小。 前提 請(qǐng)求是異步的。因?yàn)橐獙?shí)時(shí)獲取到上傳的進(jìn)度...
摘要:在編寫程序的過程中,經(jīng)常會(huì)遇到一個(gè)經(jīng)典的文件上傳場(chǎng)景上傳頭像圖片?;趯?duì)最好的用戶體驗(yàn)的追求,寫一下之前在項(xiàng)目中實(shí)現(xiàn)在項(xiàng)目中的上傳頭像。 在編寫web程序的過程中,經(jīng)常會(huì)遇到一個(gè)經(jīng)典的文件上傳場(chǎng)景:上傳頭像(圖片)?;趯?duì)最好的用戶體驗(yàn)的追求,寫一下之前在項(xiàng)目中實(shí)現(xiàn)在Laravel項(xiàng)目中的Ajax上傳頭像。 1.配置路由 在Laravel的routes.php中設(shè)置路由: Rou...
閱讀 1649·2021-11-22 15:33
閱讀 1809·2021-11-15 18:01
閱讀 743·2021-10-09 09:43
閱讀 2717·2021-09-22 16:03
閱讀 896·2021-09-03 10:28
閱讀 3663·2021-08-11 10:22
閱讀 2805·2019-08-30 15:54
閱讀 1831·2019-08-30 14:21