/**
*1. 基于Promise的网络请求库,包含GET POST请求
* 2.使用方法:
* 1.先引入: import {get,post,...} from 本文件;
* 2.get请求: get("/index",{id:2}).then(data=>{}).catch(error=>{});
* 3. post请求: post("/index",{id:2}).then(data=>{}).catch(error=>{});
*/
/* 服务器请求地址 */
export const domain = 'https://api.it120.cc/tz/';
/**
* 发起get请求
* @param url 请求路径 必填
* @param data 请求参数 get请求的参数会自动拼到地址后面
* @param headers 请求头 选填
* @returns {Promise}
*/
export const get = (url, data, headers) => request('GET', url, data, headers);
/**
* 发起post请求
* @param url 请求路径 必填
* @param data 请求参数
* @param headers 请求头 选填
* @returns {Promise}
*/
export const post = (url, data, headers) => request('POST', url, data, headers);
/**
* 接口请求基类方法
* @param method 请求方法 必填
* @param url 请求路径 必填
* @param data 请求参数
* @param header 请求头 选填
* @returns {Promise}
*/
export function request(method, url, data, header = {
'Content-Type': 'application/json'
}) {
wx.showLoading({
title: '加载中...'
});
return new Promise((resolve, reject) => {
const response = {};
url = domain + url;
wx.request({
url,
method,
data,
header,
success: (res) => response.success = res,
fail: (error) => response.fail = error,
complete() {
wx.hideLoading();
if (response.success) {
if (response.success.statusCode != 200) {
wx.showToast({
title: "网络出错,稍后再试",
icon: "none"
});
return;
}
resolve(response.success.data);
} else {
wx.showToast({
title: "数据请求失败,请稍后重试",
icon: "none"
});
console.log('数据请求失败', response.fail)
reject(response.fail);
}
},
});
});
}
网友评论