微信小程序全局配置wx.request参数

此方法使用vue项目写好的api【相当于替代axios的一些功能 】

基本配置

// http.js
var root = 'https://xxxxxxxx.net:8000/api';

function req(type, url, data) {
  var header = { // 根据需求设置请求头Authorization
    'content-type': 'application/json',
    "Authorization": wx.getStorageSync('token') || ''
  };
  let sessionId = wx.getStorageSync("UserSessionId");
  if (sessionId) {
    if (!header || !header["SESSIONID"]) {
      header["SESSIONID"] = sessionId;
    }
  }
  wx.showNavigationBarLoading();
  return new Promise((resolve, reject) => { // 返回一个Promise
    wx.request({
      url: root + url, // 请求地址
      data: data, // 请求参数
      header: header,
      method: type,
      success: function (res) {
        resolve(res)
      },
      fail: function (err) {
        reject(err)
      },
      enableCache: true,
      timeout: 20000,
      complete: function (vv) { // 接口调用结束的回调函数(调用成功、失败都会执行)
        // console.log(vv);
      }
    })
  }).catch( err => {
    console.log(err);
  })
}

const service = { // 【重新解析原来axios的封装,这里只原pc端的接口api使用了axios,如无此需求可忽略】,根据个人需求解析
  get: function (url, data) {
    return req('GET', url, data ? data.params ? data.params: {} : {})
  },
  post: function (url, data) {
    return req('POST', url, data)
  },
  put: function (url, data) {
    return req('PUT', url, data)
  },
  delete: function (url, data) {
    return req('DELETE', url, data.data)
  }
}

export default service // 将此方法暴露出去

然后个人的api,api.js使用service

import service from '../../http'

// 获取专区分类及数量
export const getPrograms = (params) => service.get(`/sample/zone/${type}/`, parmas)


在页面引入使用index.js

import { getPrograms } from '../../api.js'

Page({
  data: {},
  getData () {
  		var data = {
			name: '嗨呀',
			sex: '男'
		}
		getPrograms(data).then(res => {
			console.log(res)
		})
	}
  })

你可能感兴趣的:(小程序)