index.js
5.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
import Axios from 'axios';
import router from '../router';
import QS from 'qs';
import common from '../common/index';
// 环境的切换
// if (process.env.NODE_ENV == 'development') {
// axios.defaults.baseURL = 'https://www.baidu.com';}
// else if (process.env.NODE_ENV == 'debug') {
// axios.defaults.baseURL = 'https://www.ceshi.com';
// }
// else if (process.env.NODE_ENV == 'production') {
// axios.defaults.baseURL = 'https://www.production.com';
// }
var instance = Axios.create({
timeout: 60000
});
instance.defaults.baseURL = common.httpUrl + 'api/';
instance.defaults.timeout = 60000;
instance.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
// 请求拦截器
// instance.interceptors.request.use(
// config => {
// // 每次发送请求之前判断vuex中是否存在token
// // 如果存在,则统一在http请求的header都加上token,这样后台根据token判断你的登录情况
// // 即使本地存在token,也有可能token是过期的,所以在响应拦截器中要对返回状态进行判断
// const token = common.getCookie('SXH_token');
// token && (config.headers.Authorization = token);
// return config;
// },
// error => {
// return Promise.error(error);
// })
// // 响应拦截器
// instance.interceptors.response.use(
// response => {
// // 如果返回的状态码为200,说明接口请求成功,可以正常拿到数据
// // 否则的话抛出错误
// if (response.status === 200) {
// return Promise.resolve(response);
// } else {
// return Promise.reject(response);
// }
// },
// // 服务器状态码不是2开头的的情况
// // 这里可以跟你们的后台开发人员协商好统一的错误状态码
// // 然后根据返回的状态码进行一些操作,例如登录过期提示,错误提示等等
// // 下面列举几个常见的操作,其他需求可自行扩展
// error => {
// if (error.response.status) {
// switch (error.response.status) {
// // 401: 未登录
// // 未登录则跳转登录页面,并携带当前页面的路径
// // 在登录成功后返回当前页面,这一步需要在登录页操作。
// case 401:
// router.replace({
// path: '/Login',
// query: {
// redirect: router.currentRoute.fullPath
// }
// });
// break;
// // 403 token过期
// // 登录过期对用户进行提示
// // 清除本地token和清空vuex中token对象
// // 跳转登录页面
// case 403:
// Message('登录过期,请重新登录');
// // 清除token
// common.deleCookie('SXH_token');
// // 跳转登录页面,并将要浏览的页面fullPath传过去,登录成功后跳转需要访问的页面
// setTimeout(() => {
// router.replace({
// path: '/Login',
// query: {
// redirect: router.currentRoute.fullPath
// }
// });
// }, 1000);
// break;
// // 404请求不存在
// case 404:
// Message('网络请求不存在');
// break;
// // 其他错误,直接抛出错误提示
// default:
// Message(error.response.data.message);
// }
// return Promise.reject(error.response);
// }
// }
// );
export function get(url, params) {
return new Promise((resolve, reject) => {
instance.get(url, {
params: params,
headers: { 'X-Authorization': common.getCookie('SXH_token') }
}).then(res => {
resolve(res.data);
}).catch(err => {
reject(err.data)
})
});
}
export function put(url, params, type, query = '') {
var ndata = type == 'json' ? JSON.stringify(params) : QS.stringify(params);
if (type == 'json') {
instance.defaults.headers.put['Content-Type'] = 'application/json;charset=UTF-8';
} else if (type == 'file') {
instance.defaults.headers.put['Content-Type'] = 'multipart/form-data;'
instance.defaults.headers.put['ossPath'] = 'AdmissionsManageSys'
} else {
instance.defaults.headers.put['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
}
return new Promise((resolve, reject) => {
instance.put(url + query, ndata, {
headers: {
'X-Authorization': common.getCookie('token')
}
}).then(res => {
resolve(res.data);
})
.catch(err => {
reject(err.data)
})
});
}
export function post(url, params, type) {
var ndata = type == 'json' ? JSON.stringify(params) : QS.stringify(params);
if (type == 'json') {
instance.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8';
} else {
instance.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
}
return new Promise((resolve, reject) => {
instance.post(url, ndata, {
headers: { 'X-Authorization': common.getCookie('SXH_token') }
}).then(res => {
resolve(res.data);
})
.catch(err => {
reject(err.data)
})
});
}