基于uni微信小程序的封装
一种是函数,一种是Promise
注意:当needToken为true的时候,需要提前登陆,且需要在全局定义siteBaseUrl地址。
/*
hanker
param:
token: 默认取本地的hankerToken
loading :默认值是true
*/
function post(url,data,success,error,needToken){
var _self = this,
// 参数
url = url,
data = data|| {},
loading = data.loading === undefined ? true : data.loading,
method="POST",
header = {'content-type' : "application/json"};
data.token = uni.getStorageSync('hankerToken')||'';
//拼接完整请求地址
var requestUrl = this.siteBaseUrl + url;
if(needToken && !data.token){ // 需要token且data中没有token;
uni.showModal({
showCancel:false,
content:"需要登录"
});
return;
}
var timestamp = Date.parse(new Date());//时间戳
// 添加时间戳
data["timestamp"] = timestamp;
// #ifdef MP-WEIXIN
data["device"] = "wxapp";
data["ver"] = "1.0.0";
// #endif
// #ifdef APP-PLUS || H5
data["device"] = "iosapp";
data["ver"] = "1.0.0";
// #endif
//请求方式:GET或POST(POST需配置header: {'content-type' : "application/x-www-form-urlencoded"},)
// method = "GET";
// header = {'content-type' : "application/json"};
//用户交互:加载圈
if (loading) {
uni.showLoading({title:'加载中...'});
}
console.log("网络请求start");
//网络请求
uni.request({
url: requestUrl,
method: method,
header: header,
data: data,
success: res => {
console.log("网络请求success:" + JSON.stringify(res));
if (res.code && res.code != 200) {//api错误
uni.showModal({
content:"" + res.msg
});
return;
}
typeof success == "function" && success(res.data);
},
fail: (e) => {
console.log("网络请求fail:" + JSON.stringify(e));
uni.showModal({
content:"" + e.errMsg
});
typeof error == "function" && error(e.data);
},
complete: () => {
console.log("网络请求complete");
if (loading) {
uni.hideLoading();
}
return;
}
});
}
function get(url,data,success,error,needToken){
var _self = this,
// 参数
url = url,
data = data|| {},
loading = data.loading === undefined ? true : data.loading,
method = "GET",
header = {'content-type' : "application/json"};
data.token = uni.getStorageSync('hankerToken')||'';
//拼接完整请求地址
var requestUrl = this.siteBaseUrl + url;
if(needToken && !data.token){ // 需要token且data中没有token;
uni.showModal({
showCancel:false,
content:"需要登录"
});
return;
}
var timestamp = Date.parse(new Date());//时间戳
// 添加时间戳
data["timestamp"] = timestamp;
// #ifdef MP-WEIXIN
data["device"] = "wxapp";
data["ver"] = "1.0.0";
// #endif
// #ifdef APP-PLUS || H5
data["device"] = "iosapp";
data["ver"] = "1.0.0";
// #endif
//请求方式:GET或POST(POST需配置header: {'content-type' : "application/x-www-form-urlencoded"},)
//用户交互:加载圈
if (loading) {
uni.showLoading({title:'加载中...'});
}
console.log("网络请求start");
//网络请求
uni.request({
url: requestUrl,
method: method,
header: header,
data: data,
success: res => {
console.log("网络请求success:" + JSON.stringify(res));
if (res.code && res.code != 200) {//api错误
uni.showModal({
content:"" + res.msg
});
return;
}
typeof success == "function" && success(res.data);
},
fail: (e) => {
console.log("网络请求fail:" + JSON.stringify(e));
uni.showModal({
content:"" + e.errMsg
});
typeof error == "function" && error(e.data);
},
complete: () => {
console.log("网络请求complete");
if (loading) {
uni.hideLoading();
}
return;
}
});
}
/*
此ajax采用Promise写法
*/
function postPro(url,data,needToken){
var _self = this,
// 参数
url = url,
data = data|| {},
loading = data.loading === undefined ? true : data.loading,
method="POST",
header = {'content-type' : "application/json"};
data.token = uni.getStorageSync('hankerToken')||'';
//拼接完整请求地址
var requestUrl = this.siteBaseUrl + url;
if(needToken && !data.token){ // 需要token且data中没有token;
uni.showModal({
showCancel:false,
content:"需要登录"
});
return;
}
var timestamp = Date.parse(new Date());//时间戳
// 添加时间戳
data["timestamp"] = timestamp;
// #ifdef MP-WEIXIN
data["device"] = "wxapp";
data["ver"] = "1.0.0";
// #endif
// #ifdef APP-PLUS || H5
data["device"] = "iosapp";
data["ver"] = "1.0.0";
// #endif
//请求方式:GET或POST(POST需配置header: {'content-type' : "application/x-www-form-urlencoded"},)
// method = "GET";
// header = {'content-type' : "application/json"};
//用户交互:加载圈
if (loading) {
uni.showLoading({title:'加载中...'});
}
console.log("网络请求start");
return new Promise((resolve,reject)=>{
uni.request({
url: requestUrl,
method: method,
header: header,
data: data,
success: res => {
console.log("网络请求success:" + JSON.stringify(res));
// if (res.code && res.code != 200) {//api错误
// uni.showModal({
// content:"" + res.msg
// });
// return;
// }
resolve(res.data);
},
fail: (e) => {
console.log("网络请求fail:" + JSON.stringify(e));
uni.showModal({
content:"" + e.errMsg
});
typeof error == "function" && error(e.data);
reject(e.data);
},
complete: () => {
console.log("网络请求complete");
if (loading) {
uni.hideLoading();
}
return;
}
});
});
//网络请求
}
function getPro(url,data,needToken){
var _self = this,
// 参数
url = url,
data = data|| {},
loading = data.loading === undefined ? true : data.loading,
method = "GET",
header = {'content-type' : "application/json"};
data.token = uni.getStorageSync('hankerToken')||'';
//拼接完整请求地址
var requestUrl = this.siteBaseUrl + url;
if(needToken && !data.token){ // 需要token且data中没有token;
uni.showModal({
showCancel:false,
content:"需要登录"
});
return;
}
var timestamp = Date.parse(new Date());//时间戳
// 添加时间戳
data["timestamp"] = timestamp;
// #ifdef MP-WEIXIN
data["device"] = "wxapp";
data["ver"] = "1.0.0";
// #endif
// #ifdef APP-PLUS || H5
data["device"] = "iosapp";
data["ver"] = "1.0.0";
// #endif
//请求方式:GET或POST(POST需配置header: {'content-type' : "application/x-www-form-urlencoded"},)
//用户交互:加载圈
if (loading) {
uni.showLoading({title:'加载中...'});
}
console.log("网络请求start");
//网络请求
return new Promise((resolve,reject)=>{
uni.request({
url: requestUrl,
method: method,
header: header,
data: data,
success: res => {
console.log("网络请求success:" + JSON.stringify(res));
// if (res.code && res.code != 200) {//api错误
// uni.showModal({
// content:"" + res.msg
// });
// return;
// }
resolve(res.data);
},
fail: (e) => {
console.log("网络请求fail:" + JSON.stringify(e));
uni.showModal({
content:"" + e.errMsg
});
typeof error == "function" && error(e.data);
reject(e.data);
},
complete: () => {
console.log("网络请求complete");
if (loading) {
uni.hideLoading();
}
return;
}
});
});
}
export {
post,
get,
postPro,
getPro
}
封装uni ajax
最新推荐文章于 2024-06-09 22:07:14 发布
2845

被折叠的 条评论
为什么被折叠?



