新建一个http.js文件
/**
* 封装http 请求方法
*/
const BASEURL = 'https://*********'; //服务器api地址
export const http = (params) => {
const TOKEN = wx.getStorageSync('token') || ''; // 获取token
var header = {
"Content-Type": "application/x-www-form-urlencoded"//设置后端需要的常用的格式就好,特殊情况调用的时候单独设置
// "Content-Type": "application/json"//设置后端需要的常用的格式就好,特殊情况调用的时候单独设置
}
// 只要不是登录接口统一添加token
console.log(params.url, TOKEN);
if (params.url != 'user/third') {
header['token'] = TOKEN
}
//返回promise 对象
return new Promise((resolve, reject) => {
wx.request({
url: BASEURL + params.url,//服务器url+参数中携带的接口具体地址
data: params.data,//请求参数
header: header,
method: params.method || 'POST', //默认为GET,可以不写,如常用请求格式为POST,可以设置POST为默认请求方式
dataType: params.dataType || 'json',//返回的数据格式,默认为JSON,特殊格式可以在调用的时候传入参数
responseType: params.responseType || 'text',//响应的数据类型
success(res) {
//接口访问正常返回数据
if (res.statusCode == 200) {
//1. 操作成功返回数据,原则上只针对服务器端返回成功的状态
if (res.data.code == 1) {
resolve(res.data.data)
}
//需要特殊处理的接口,可以单独列出来返回数据
// else if (params.url == "/order/result" && res.data.retCode == "800020") {//支付结果未知
// //需要特殊处理的接口,可以单独列出来返回数据
// resolve(res.data)
// }
else {
wx.showToast({
icon: "none",
title: res.data.msg
})
}
} else {
//2. 操作不成功返回数据,以toast方式弹出响应信息,如后端未格式化非操作成功异常信息,则可以统一定义异常提示
wx.showToast({
icon: "none",
title: res.data.msg
})
}
},
fail: function (e) {
reject(e)
}
})
})
}
使用封装的请求,我这里统一文件夹做请求接口处理
import {
http
} from './http.js'
var url = {
userLogin: "user/third",
getWeRunList: "wxapp/getWeRunData",
}
module.exports = {
// 登录
userLogin(obj = {}) {
return http({
url: url.userLogin,
data: obj,
method: obj.method || 'POST'
})
},
getWeRunList(obj) {
return http({
url: url.getWeRunList,
data: obj,
method: obj.method || 'POST'
})
}
}
在页面中使用api.js
//index.js
import { userLogin, getWeRunList } from '../../util/api.js'
Page({
getWeRunList({
encryptedData: obj.encryptedData,
iv: obj.iv
}).then(res => {
console.log(res, '4564565');
})
})