加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
request.js 2.43 KB
一键复制 编辑 原始数据 按行查看 历史
追风の牧羊人 提交于 2021-07-03 21:19 . 修复bug
let baseUrl = '';
function objByUrl(paramObj) {
function filter(str) { // 特殊字符转义
str += ''; // 隐式转换
str = str.replace(/%/g, '%25');
str = str.replace(/\+/g, '%2B');
str = str.replace(/ /g, '%20');
str = str.replace(/\//g, '%2F');
str = str.replace(/\?/g, '%3F');
str = str.replace(/&/g, '%26');
str = str.replace(/\=/g, '%3D');
str = str.replace(/#/g, '%23');
return str;
}
const sdata = [];
for (let attr in paramObj) {
sdata.push(`${attr}=${filter(paramObj[attr])}`);
}
return sdata.join('&');
}
if (process.env.NODE_ENV === 'development') {
baseUrl = 'https://shop.mmdddd.com:8445'
//baseUrl = 'http://192.168.2.109:8888'
//baseUrl = 'http://192.168.2.86:8888'
} else {
baseUrl = 'https://shop.mmdddd.com:8445'
}
export default function({
url,
data,
method,
needToken = true,
isLoading = false, //是否开启loading
responseType
}) {
if (isLoading) {
uni.showLoading({
title: '加载中'
})
}
const token = uni.getStorageSync('token');
if (needToken && !token) {
uni.showToast({
title: '您未登录,请前往指定页面登录',
icon: 'none'
})
// uni.navigateTo({
// url: '/pages/authorization/index'
// })
return;
}
if (method === 'GET' && data) {
url = `${url}?${objByUrl(data)}`;
}
return new Promise((resolve, reject) => {
uni.request({
url: baseUrl + url,
data,
method,
timeout: 30 * 1000,
responseType: responseType || 'text',
header: {
'Authorization': `Bearer ${token}`
},
success(res) {
let data = res.data;
if (data.code === 500 || data.status === 500) {
uni.showToast({
icon: 'none',
title: data.msg ? data.msg : '未知错误,请联系管理员'
})
reject(data);
return;
}
if (data.code === 401) {
uni.showModal({
title: '您的账号在其他地方登陆,请重新登录',
success(isLoginUser) {
if (isLoginUser.confirm) {
uni.navigateTo({
url: '/pages/authorization/index'
})
}
}
})
reject(data);
return;
}
if (data.code === '1') {
uni.showToast({
title: data.message,
icon: 'none'
})
return reject(data);
}
if (data.code === '0') {
resolve(data);
}
uni.hideLoading();
},
fail(error) {
uni.showToast({
title: '连接超时,请检查网络',
icon: 'none'
})
uni.hideLoading();
reject(error);
}
})
})
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化