Taro的封装请求
在同级目录下新建文件夹config
创建request.js文件
ajax封装,请求响应拦截处理
import Taro from '@tarojs/taro';
let Ajax = (url, method, data, header) => {
// 请求拦截处理写在这里
// Taro.showLoading({
// title: '加载中',
// icon: 'loading',
// mask: true
// });
return new Promise((resolve, reject) => {
Taro.request({
url: url,
data: data,
method: method,
header: header,
success: (res) => {
// 响应拦截处理写在这里
if (res.statusCode == 200) {// 确认用户登录,而不仅仅是有sessionId,还需要有登录的信息用户openId
// let loginData = Taro.getStorageSync('loginData');
// if(loginData){
// loginData = JSON.parse(loginData)
// }
// if(url.indexOf('account')<0 && !loginData.openId){
// Taro.showModal({
// title:'提示',
// content:'请进行登录。',
// success:(res)=>{
// if(res.confirm){
// Taro.clearStorageSync();
// Taro.reLaunch({
// url:'/login/index'
// });
// return;
// }
// }
// })
// }
return resolve(res.data);
} else if (res.statusCode == 404) {
Toast('404 请求页面不存在');
} else if (res.statusCode == 408) {
Toast('请求超时');
} else if (res.statusCode == 500) {
Toast('服务器错误')
} else if (res.statusCode == 0) {
Toast('网络连接超时')
} else if (res.statusCode == 501) {
Taro.showModal({
title:'提示',
content:'请进行登录。',
success:(res)=>{
if(res.confirm){
Taro.clearStorageSync();
Taro.reLaunch({
url:'/src/pages/login/index'
});
return;
}
}
})
}
reject(res);
},
fail: (error) => {
Model('服务器错误,请稍候再试 !');
reject(error);
return;
},
complete: () => {
// Taro.hideLoading();
}
})
})
}
//将sessionId通过请求头传递给后台,用于判断是否登录以及登录是否过期超时
let get = (url, data, header) => {
header = header ? header : {"Cookie": "JSESSIONID=" + Taro.getStorageSync("sessionId")};
return Ajax(url, 'GET', data, header);
}
let post = (url, data, header) => {
header = header ? header : {"Cookie": "JSESSIONID=" + Taro.getStorageSync("sessionId")};
header['Content-Type'] = 'application/json';
return Ajax(url, 'POST', data, header);
}
let Toast = (msg) => {
Taro.showToast({
title: msg,
duration: 3000,
icon: 'none',
mask:true
})
}
let Model = (msg) => {
Taro.showModal({
title: '提示',
content: msg,
showCancel: false
})
}
export default {get, post}
api.js 封装接口调用
import http from './interceptor.js'
export default {
configUrl:{baseUrl:'http://192.168.101.239:8080'
},
// 请求示例
getAssetsList(params) {
return http.get(this.configUrl.baseUrl + '/wx/assetsInfo/listIndex', params)
},
addAssetsRepair(params) {
return http.post(this.configUrl.baseUrl + '/wx/assetsRepair',params)
},
}
使用
//引入api
import api from "../../api/api.js";
let params={};
api.getAssetsList(params).then((res) => {
});