mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-mobile.git
synced 2025-12-07 01:46:44 +08:00
167 lines
3.5 KiB
JavaScript
167 lines
3.5 KiB
JavaScript
import config from '@/config/index.js'
|
||
import {getToken,removeToken} from '@/utils/token.js'
|
||
import qs from 'qs'
|
||
|
||
const ReLoginUrl="/login";
|
||
|
||
const formatUrl=function(url){
|
||
if(url.startsWith('http') || url.startsWith('https')){
|
||
//console.log(url,"我拿到的url值,我想知道下面有啥方法")
|
||
return url;
|
||
}else{
|
||
return config.oldApiBaseUrl+url
|
||
}
|
||
}
|
||
const formRequest=function(method,url,data){
|
||
let token=getToken();
|
||
if(!token){
|
||
token='';
|
||
}
|
||
let headers={
|
||
'content-type':'application/x-www-form-urlencoded',
|
||
'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==6001){
|
||
//uni.removeStorageSync('userInfo');
|
||
removeToken();
|
||
let loginPath=config.loginPath;
|
||
if(loginPath.startsWith('http')){
|
||
// #ifdef APP-PLUS
|
||
plus.runtime.openURL(loginPath) //这里默认使用外部浏览器打开而不是内部web-view组件打开
|
||
// #endif
|
||
// #ifdef H5
|
||
//window.open(loginPath)
|
||
location.href=loginPath
|
||
// #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={
|
||
'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==6001){
|
||
removeToken();
|
||
let loginPath=config.loginPath;
|
||
if(loginPath.startsWith('http')){
|
||
// #ifdef APP-PLUS
|
||
plus.runtime.openURL(loginPath) //这里默认使用外部浏览器打开而不是内部web-view组件打开
|
||
// #endif
|
||
// #ifdef H5
|
||
//window.open(loginPath)
|
||
location.href=loginPath
|
||
// #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
|
||
} |