import config from '@/config/index.js' import {getToken,removeToken} from '@/utils/token.js' import qs from 'qs' const ReLoginUrl="/login"; const formatUrl=function(url){ return 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) 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={ '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) 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 }