使用formdata等格式传参调用服务一些写法

未有特别说明均为原创,转载注明出处。

最近在使用后端提供的服务时,要求使用formdata格式传参。

而平时都是这样使用的

export async function doDownloadfile(params) {
   return request(`${urlConfig.downloadfile}?fileId=${params[0]}&orderId=${params[1]}`, {
      method: 'get',
      headers: {
         'token': localStorage.getItem("token")
      },
   });
}

或者这样

export async function doInvoice(params) {
   return request(`${urlConfig.invoice}`, {
      method: 'post',
      headers: {
         'Content-Type': 'application/json;charset=UTF-8',
         'token': localStorage.getItem("token")
      },
      body: JSON.stringify(params)
   });
}

JSON.stringify({"body":params[0],"companyName":params[1]})也可以这样写成键值对形式。

或者使用axios,set或者append都可以

   let formData = new FormData()
   formData.set('body', params[0])
   formData.set('companyName', params[1]);
   formData.set('payType', params[2]);
   formData.set('orderNum', params[3]);
   formData.set('total_fee', params[4]);
   formData.set('token', params[5]);
   axios({
      method: 'post',
      url: `${urlConfig.pcPay}`,
      data: formData,
      headers: {
        'Content-Type':'multipart/form-data',//'application/json;charset=UTF-8'
        'token': localStorage.getItem('token')
      }
    }).then(function (response) {
      return response;
      }
    )
      .catch(function (error) {
        return error;
      });

但是使用request

  const reqParam ={
      method:'post',
      url:`${urlConfig.pcPay}`,
      headers: {
        'Accept':'application/json;charset=UTF-8',//深渊巨坑!
        'token': localStorage.getItem('token')
      },
      body:formData,
   };
   return request(`${urlConfig.pcPay}`, reqParam);

原文地址:https://www.cnblogs.com/marvelousone/p/10819538.html