/*
http 请求工具方法
*/
import { baseUrl } from '@/config/baseConfig.js' //请求地址
import msgUtils from '@/utils/msgUtils.js'
// import store from '@/store/index.js'
/*
* 格式化http url
* @params {String} url 请求地址
* @params {String} nameSpace 请求api的空间
*/
export function httpUrlFormat (url, nameSpace = 'exchange') {
return baseUrl(nameSpace) + url
}
/*
发起异步请求,可以理解为不需要登录的接口
*/
export function ajaxSync(config) {
return new Promise(function(resolve, reject) {
const success = config.success;
const error = config.error;
// 发起请求
uni.request(Object.assign(config, {
success(data) {
// console.log("--s-",data)
if(data.data.code === 401){
// msgUtils.msg("请登录");
uni.navigateTo({
url:`/pages/login/login?type='back'`
})
}
success && success(data.data);
resolve(data.data);
},
fail(data) {
console.log(data)
// config.showTips && msgUtils.msg(data.data.msg);
error && error(data.data);
reject(data.data);
}
}));
});
}
/*
发起row格式数据请求
*/
export function ajaxForRawData(config) {
config.header = Object.assign(config.header || {}, {
// 'Content-Type': 'application/json; charset=UTF-8'
'Content-Type': 'application/x-www-form-urlencoded'
});
if (typeof config.data === "object") {
config.data = JSON.stringify(config.data);
}
return ajaxSync(config);
};
/*
发起需要携带校验凭证的请求:oauthAccessToken
*/
function getAuthorization(url, type, param) {
try {
return `Bearer ${JSON.parse(uni.getStorageSync('info')).token}`
} catch {
// 跳转登录页
// uni.navigateTo({
// url: '/pages/login/login?type=back'
// });
}
}
//可以理解为需要登录的接口
export function ajaxCarryAuthorization(config) {
// console.log(config)
config.header = Object.assign(config.header || {}, {
Authorization: getAuthorization(config.url, config.method, config.data)
});
if (config.isRawData) {
return ajaxForRawData(config);
}
return ajaxSync(config);
}
API接口js
import {
httpUrlFormat,
ajaxCarryAuthorization,
ajaxSync
} from '@/utils/httpUtils.js'
const _flag = 'apiBaseUrl' // 请求的api空间
//
export function getUser() {
return ajaxSync({
url: httpUrlFormat(`/user/get`, _flag),
method: 'GET'
})
}
// post可能需要增加header
export function setUser() {
return ajaxCarryAuthorization({
header: {'Content-Type': 'application/x-www-form-urlencoded'},
url: httpUrlFormat(`/user/set`, _flag),
method: 'POST',
})
}