用FormData上傳檔案
阿新 • • 發佈:2019-01-07
不設定undefined 就不會有逗號,但是這個也沒了,所以 問題還是沒有解決。。。
最後在一個ionic交流群了,一個前輩告訴我,用原生的 XMLHttpRequest 提交表單就可以解決問題了
問題解決:
用原生XMLHttpRequest提交表單(用的不是ionic封裝的那個http請求,用的是XMLHttpRequest)
具體實現程式碼:save=(val)=>{ var fd = new FormData(); fd.append("goodsCheckedInfoId",val.goodsCheckedInfoId); fd.append("wxUserId",val.wxUserId); fd.append("startSellTime",val.startSellTime); fd.append("endSellTime",val.endSellTime); fd.append("totalSellNum",val.totalSellNum); fd.append("offShelveNum",val.offShelveNum); fd.append("offShelveGoodsValue",val.offShelveGoodsValue); fd.append("supplier",val.supplier); fd.append("lowerDealerNum",val.lowerDealerNum); fd.append("remark",val.remark); fd.append("fillContacts",val.fillContacts); fd.append("fillContactsTelephone",val.fillContactsTelephone); // 獲取選中圖片數目 var imgLen=this.list.length; for(var i=0;i<imgLen;i++){ fd.append("files",this.list[i]); } // 設定顯示提交載入框 let postLoading = this.nativeSer.showLoading({content: '載入中...',showBackdrop:false}); let xhr = new XMLHttpRequest(); xhr.open('POST', INTERFACES.dealunqualifyWrite.interface, true); xhr.onreadystatechange = (res)=>{ if(xhr.readyState ==4 && xhr.status == 200){ //上傳成功 console.log(JSON.parse(xhr.response).hasOk); if(JSON.parse(xhr.response).hasOk){ postLoading.dismiss(); this.nativeSer.showToast({message:'資料提交成功', position:'middle', duration: 1000, cssClass: 'toast-auto'}); setTimeout(()=>{ this.navCtrl.push('UnqulifyDealListPage'); },1000); } else { postLoading.dismiss(); this.nativeSer.showToast({message:'資料提交異常,請稍後重試', position:'middle', duration: 1000, cssClass: 'toast-auto'}); } } } xhr.onerror =(err)=>{ alert(INTERFACES.dealunqualifyWrite.wrongTip); console.log('err====='+JSON.stringify(err)); // this.nativeSer.showToast({message:'資料提交異常,請稍後重試', position:'middle', duration: 1000, cssClass: 'toast-auto'}); } xhr.send(fd); }