mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-mobile.git
synced 2025-12-09 02:46:46 +08:00
167 lines
3.9 KiB
JavaScript
167 lines
3.9 KiB
JavaScript
import config from '../config/index.js'
|
|
import {toLogin} from '@/utils/tologin.js'
|
|
import {getToken,removeToken} from '@/utils/token.js'
|
|
import qs from 'qs'
|
|
|
|
const ReLoginUrl="/login";
|
|
|
|
const formatUrl=function(url){
|
|
return url;
|
|
}
|
|
const formRequest=function(method,url,data){
|
|
let token=getToken();
|
|
if(!token){
|
|
token='';
|
|
}
|
|
let headers={
|
|
'content-type':'application/x-www-form-urlencoded',
|
|
'XBOE-Access-Token':token
|
|
}
|
|
let reUrl=formatUrl(url);
|
|
return new Promise(function(resolve, reject){
|
|
uni.request({
|
|
url: reUrl,
|
|
method,
|
|
data: data,
|
|
xhrFields: {withCredentials: true},
|
|
dataType: 'json',
|
|
header: headers,
|
|
success:function(rs,statusCode){
|
|
if(rs.statusCode==200){
|
|
if(rs.data.status==401 || rs.data.status==402){
|
|
removeToken();
|
|
toLogin(reUrl);
|
|
// let loginPath=config.loginPath;
|
|
// if(loginPath.startsWith('http')){
|
|
// // #ifdef APP-PLUS
|
|
// plus.runtime.openURL(loginPath) //这里默认使用外部浏览器打开而不是内部web-view组件打开
|
|
// // #endif
|
|
// // #ifdef H5
|
|
// //window.open(loginPath)
|
|
// let returnUrl=window.location.protocol+'//'+window.location.host+config.context;
|
|
// location.href=config.loginPath+"?returnUrl="+encodeURIComponent(returnUrl+'/pages/login/loading');
|
|
// // #endif
|
|
// }else{
|
|
// uni.redirectTo({
|
|
// url:loginPath
|
|
// })
|
|
// }
|
|
}else{
|
|
resolve(rs.data);
|
|
}
|
|
}else{
|
|
reject("API请求错误");
|
|
}
|
|
},
|
|
fail:function(err){
|
|
reject(err);
|
|
}
|
|
});
|
|
});
|
|
|
|
}
|
|
const jsonRequest=function(method,url,data){
|
|
let token=getToken();
|
|
if(!token){
|
|
token='';
|
|
}
|
|
let headers={
|
|
'XBOE-Access-Token':token
|
|
}
|
|
let reUrl=formatUrl(url);
|
|
return new Promise(function(resolve, reject){
|
|
|
|
uni.request({
|
|
url: reUrl,
|
|
method,
|
|
data: data,
|
|
xhrFields: {withCredentials: true},
|
|
dataType: 'json',
|
|
header: headers,
|
|
success:function(rs,statusCode){
|
|
if(rs.statusCode==200){
|
|
if(rs.data.status==401 || rs.data.status==402){
|
|
removeToken();
|
|
toLogin(reUrl);
|
|
// let loginPath=config.loginPath;
|
|
// if(loginPath.startsWith('http')){
|
|
// // #ifdef APP-PLUS
|
|
// plus.runtime.openURL(loginPath) //这里默认使用外部浏览器打开而不是内部web-view组件打开
|
|
// // #endif
|
|
// // #ifdef H5
|
|
// //window.open(loginPath)
|
|
// let returnUrl=window.location.protocol+'//'+window.location.host+config.context;
|
|
// location.href=config.loginPath+"?returnUrl="+encodeURIComponent(returnUrl+'/pages/login/loading');
|
|
// // #endif
|
|
// }else{
|
|
// uni.redirectTo({
|
|
// url:loginPath
|
|
// })
|
|
// }
|
|
}else{
|
|
resolve(rs.data);
|
|
}
|
|
}else{
|
|
reject("API请求错误");
|
|
}
|
|
},
|
|
fail:function(err){
|
|
reject(err);
|
|
}
|
|
});
|
|
});
|
|
}
|
|
//get请求
|
|
const get=function(url){
|
|
return formRequest('GET',url,'');
|
|
}
|
|
//post请求
|
|
const post=function(url,data){
|
|
if(data){
|
|
data=qs.stringify(data);
|
|
}
|
|
return formRequest('POST',url,data);
|
|
}
|
|
//postJson请求
|
|
const postJson=function(url,json){
|
|
return jsonRequest('POST',url,json);
|
|
}
|
|
//put请求
|
|
const put=function(url,data){
|
|
if(data){
|
|
data=qs.stringify(data);
|
|
}
|
|
return formRequest('PUT',url,data);
|
|
}
|
|
//putJson请求
|
|
const putJson=function(url,json){
|
|
return jsonRequest('PUT',url,json);
|
|
}
|
|
//patch请求
|
|
const patch=function(url,data){
|
|
if(data){
|
|
data=qs.stringify(data);
|
|
}
|
|
return formRequest('PATCH',url,data);
|
|
}
|
|
//patchJson请求
|
|
const patchJson=function(url,json){
|
|
return jsonRequest('PATCH',url,json);
|
|
}
|
|
//delete请求
|
|
const del=function(url,data){
|
|
if(data){
|
|
data=qs.stringify(data);
|
|
}
|
|
return formRequest('DELETE',url,data);
|
|
}
|
|
export default {
|
|
get,
|
|
post,
|
|
postJson,
|
|
put,
|
|
putJson,
|
|
patch,
|
|
patchJson,
|
|
del
|
|
} |