Files
learning-system-mobile/utils/growthXajax.js
Pengxiansen f3abd92d23 提交
2025-02-14 16:01:48 +08:00

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
}