javascript - 圖片上傳的時候怎樣把圖片和字符串一起post提交到服務器?
問題描述
上傳圖片的時候需要提供用戶的登錄令牌和需要上傳的圖片。但是兩個不一樣的數據類型怎樣一起post服務器上啊!
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,沒有權限} }); return false; }
問題解答
回答1:post的data類型改成formdata,然后在formdata中裝載對象,以下是例子:
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出來FormData了,就別再自己攢對象了嘛,就用new出來的這個啊……
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;}
然后后端稍微調整下,能收FormData就行了。
回答3:謝邀:
token可以放到headers中,后端單獨對token做檢查,而該接口只處理圖片
相關文章:
1. node.js - nodejs+express+vue2. javascript - 我的站點貌似被別人克隆了, google 搜索特定文章,除了域名不一樣,其他的都一樣,如何解決?3. java - web端百度網盤的一個操作為什么要分兩次請求服務器, 有什么好處嗎4. 數據庫 - Mysql的存儲過程真的是個坑!求助下面的存儲過程哪里錯啦,實在是找不到哪里的問題了。5. javascript - 如何獲取未來元素的父元素在頁面中所有相同元素中是第幾個?6. python - 如何把152753這個字符串轉變成時間格式15:27:537. 使用mysql命令行連接遠程數據庫host跳轉8. javascript - onclick事件點擊不起作用9. javascript - webpack-dev-server和webpack沖突嗎10. python 字符串匹配問題

網公網安備