微信小程序网络请求封装以及上传带图的表单

一般网络请求函数封装

注意:res.data的判断以及操作需要按照实际后端返回结果作为依据

export function httpRequest(url, params , successCode, method = "get") { //method不传参数默认为get请求
  return new Promise((resolve, reject) => {
    wx.request({
      url: url,
      data: params, //params注意封装为对象
      method: method,
      header:{
      'content-type':'application/x-www-form-urlencoded'
      },
      success: res => { //此处res为小程序封装的result对象,里面的result为后端返回的实际内容
        if(!res.data.data){ //请求成功且为后端的successResult,但是data数据为null或false
          wx.showToast({
            title: res.data.message, //返回的message,内容为原因
            icon:"error"
          })
        }
        if (res.data.code === successCode) { //请求成功
          resolve(res.data.data) //请求完成的具体数据
        } else {  //请求成功但是为后端的failResult,内容一般也是null或false
          wx.showModal({
            cancelColor: 'cancelColor',
            title:"失败",
            content:"请求出错或请求无数据"
          })
          
        }
      },
      fail: err => {
        reject("网络请求失败")
      }
    })
  })
};

小程序里图片随表单上传需要使用wx.uploadFile

export function submit(that) { //因为这个函数需要被引用,that参数为具体页面的this,下方的that.data就是某个页面的this.data
const data = { //表单数据
      title: that.data.blogTitle, //表单数据
      content: that.data.blogContent, //表单数据
    }
    wx.showLoading({ //加载框
      title: '请求中',
      mask: true
    })
 	wx.uploadFile({
        filePath: that.data.blogImg, //存储的文件路径,小程序上传图片到选框后返回的临时路径
        name: 'file', //后端接受的图片的参数名称
        url: 'http://localhost:80/insertBlog', //后端接口,开发环境勾选不校验https选项
        formData: data, //其他表单参数,data封装为对象
        success: res => {
          // console.log("上传成功",res)
          wx.hideLoading({ //隐藏加载框
          }).then(res => {
            wx.showToast({ //提示框
              title: '上传成功',
            }).then(res => { 
              that.setData({
                blogTitle: "", //清除文本内容
                blogContent: ""
              })
            })
          })
        },
        fail: res => {
          wx.hideLoading({ //隐藏加载框
          }).then(res => {
            wx.showModal({
              title: '请求失败',
              content: "请检查本地网络"
            })
          })
        }
      })
      }
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值