javascript - 圖片上傳的時(shí)候怎樣把圖片和字符串一起post提交到服務(wù)器?
問(wèn)題描述
上傳圖片的時(shí)候需要提供用戶的登錄令牌和需要上傳的圖片。但是兩個(gè)不一樣的數(shù)據(jù)類型怎樣一起post服務(wù)器上啊!
mui.init(); function fsubmit(){ var data = new FormData(mui(’#uploadForm’)[0]); //獲取圖片 $.ajax({ url: ’http://192.168.1.8/api/user-center/avatar’, type: ’POST’, data: { key:localStorage.getItem(’key’), //獲取本地的登錄令牌 avatar:data//圖片}, cache: false, processData: false, contentType: false ,success:function(data){ console.log(data.datas.testURL);},error:function(xhr,type,error){ console.log(xhr.status+xhr.responseText); //一直返回401,沒(méi)有權(quán)限} }); return false; }
問(wèn)題解答
回答1:post的data類型改成formdata,然后在formdata中裝載對(duì)象,以下是例子:
var fd = new FormData(); var file_data = $(’input[type='file']’)[0].files; // for multiple files for(var i = 0;i<file_data.length;i++){fd.append('file_'+i, file_data[i]); } var other_data = $(’form’).serializeArray(); $.each(other_data,function(key,input){fd.append(input.name,input.value); }); $.ajax({url: ’caiyongji.com/segmentfault’,data: fd,contentType: false,processData: false,type: ’POST’,success: function(data){ console.log(data);} });回答2:
你都new出來(lái)FormData了,就別再自己攢對(duì)象了嘛,就用new出來(lái)的這個(gè)啊……
mui.init();function fsubmit() { var fData = new FormData(); //這里用空的就行,后邊再append fData.append(’file’, mui(’#uploadForm’)[0], ’不知道你文件名是啥你自己去整下.jpg’); fData.append(’key’, localStorage.getItem(’key’)); //獲取本地的登錄令牌 $.ajax({url: ’http://192.168.1.8/api/user-center/avatar’,type: ’POST’,data: fData,processData: false,contentType: false,success: function (data) { console.log(data.datas.testURL);},error: function (xhr, type, error) { console.log(xhr.status + xhr.responseText);} }); return false;}
然后后端稍微調(diào)整下,能收FormData就行了。
回答3:謝邀:
token可以放到headers中,后端單獨(dú)對(duì)token做檢查,而該接口只處理圖片
相關(guān)文章:
1. node.js - 在搭建vue.js時(shí),安裝淘寶npm鏡像cnpm,報(bào)錯(cuò),如何解決呢2. mysql - 分庫(kù)分表、分區(qū)、讀寫(xiě)分離 這些都是用在什么場(chǎng)景下 ,會(huì)帶來(lái)哪些效率或者其他方面的好處3. node.js - nodejs開(kāi)發(fā)中常用的連接mysql的庫(kù)4. linux - python 抓取公眾號(hào)文章遇到驗(yàn)證問(wèn)題5. mysql - jdbc的問(wèn)題6. python - 我在使用pip install -r requirements.txt下載時(shí),為什么部分能下載,部分不能下載7. 視頻文件不能播放,怎么辦?8. mysql - 如何減少使用或者不用LEFT JOIN查詢?9. 網(wǎng)頁(yè)爬蟲(chóng) - python 爬取網(wǎng)站 并解析非json內(nèi)容10. 為啥最大化個(gè)窗口還得找一堆理由?
