117 lines
3.1 KiB
JavaScript
117 lines
3.1 KiB
JavaScript
/*
|
||
http 请求工具方法
|
||
*/
|
||
const querystring = require('querystring');
|
||
const Signture = require('crypto')
|
||
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) {
|
||
if(data.header.authorization){
|
||
uni.setStorageSync('box-token',data.header.authorization)
|
||
}
|
||
// 401 未登录 或token已过期
|
||
// 403 没有相关权限
|
||
// 10000 登录失败
|
||
if(data.data.code === 11000 || data.data.code === 401){
|
||
msgUtils.msg(data.data.message);
|
||
uni.navigateTo({
|
||
url:`/pages/login/login?type=back`
|
||
})
|
||
}else if(data.data.code === 10001){
|
||
msgUtils.msg(data.data.message);
|
||
uni.reLaunch({
|
||
url:`/pages/login/past-due`
|
||
})
|
||
}else if(data.data.code === 11010){
|
||
msgUtils.msg(data.data.message);
|
||
uni.reLaunch({
|
||
url:`/pages/login/shut-down`
|
||
})
|
||
}
|
||
if(data.data.code === 403){
|
||
msgUtils.msg(data.data.message);
|
||
}
|
||
if(data.data.code === 10000){
|
||
msgUtils.msg(data.data.message);
|
||
}
|
||
|
||
// 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 {
|
||
// console.log("uni.getStorageSync('box-token'):",uni.getStorageSync('box-token'))
|
||
// return `Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MTc2ODQ3OTg2MDAxMjk1MzYwMSwibmlja25hbWUiOiLojonov7jmjqPnjJznl4UiLCJ1c2VybmFtZSI6IjE1MjgwMTE2MzgzIiwicGFzc3dvcmQiOiJxd2VyMTIzNDUiLCJzdGF0dXMiOjF9.ahpZGI8CdmPYYkywF62tNrpGniVrYKSWWh1XXfISUN8`
|
||
return `${uni.getStorageSync('box-token')}`
|
||
} catch {
|
||
// 跳转登录页
|
||
// uni.navigateTo({
|
||
// url: '/pages/login/login?type=back'
|
||
// });
|
||
}
|
||
}
|
||
|
||
export function ajaxCarryAuthorization(config) {
|
||
config.header = Object.assign(config.header || {}, {
|
||
Authorization: getAuthorization(config.url, config.method, config.data)
|
||
});
|
||
if (config.isRawData) {
|
||
return ajaxForRawData(config);
|
||
}
|
||
return ajaxSync(config);
|
||
} |