Commit c007357a by caoyanzhi

update: 请求封装

parent 8fb8be4f
import { request } from '../utils/request.js';
// 定义api请求方法
export const getUserInfo = request('/api-auth/get-login-user-info');
// 调用
// getUserInfo(requestData).then()
export const projectName = 'gic-web';
export const origin =
location.origin.indexOf('localhost') >= 0 ? 'http://www.gicdev.com/' : '';
// 可能同时存在0、1、0000表示请求成功,接口响应状态字段可能是code、errorCode
// 这里当errorCode = 0时认为请求成功
export const succCode = 0;
export const notAuthCode = 401;
<template>
<div class="home">
<img class="logo" alt="Vue logo" src="../../assets/logo.png" />
hello world
<dm-sub-title text="hello world"></dm-sub-title>
</div>
</template>
......
import axios from 'axios';
import qs from 'qs';
import { Message } from 'element-ui';
import { origin, succCode, notAuthCode, projectName } from '@/config/index.js';
axios.defaults.baseURL = origin;
const request = (opt) => {
const config = {
url: '',
params: '',
data: '',
method: 'get',
// request body 是否使用 formData格式
isFormData: false,
// response 是否使用响应code验证
openIntercept: true,
// 设置headers
headers: {},
};
if (typeof opt == 'string') {
config.url = opt;
} else {
Object.assign(config, opt);
}
config.url = `${config.url}${
config.url.indexOf('?') >= 0 ? '&' : '?'
}requestProject=${projectName}`;
return (params) => {
switch (config.method.toLowerCase()) {
case 'get':
config.params = params;
break;
case 'post':
config.data = config.isFormData ? qs.stringify(params) : params;
break;
default:
config.data = params;
break;
}
return new Promise((resolve, reject) => {
axios(config)
.then((res) => {
let resp = res.data;
if (resp.code == notAuthCode) {
window.location.href = `${origin}/gic-web/#/login`;
return;
}
if (config.openIntercept && resp.errorCode != succCode) {
Message({
message: (resp.message || '数据加载失败').slice(0, 300),
type: 'error',
});
return reject(resp);
}
resolve(resp);
})
.catch((error) => {
let response = error.response || {};
let data = response.data || {};
Message({
message: (data.message || '数据加载失败').slice(0, 300),
type: 'error',
});
reject(error);
});
});
};
};
export { axios, request };
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment