xc-app/utils/httpUtils.js

117 lines
3.1 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
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);
}