commonsec.js
3.3 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
import axios from "axios";
// import {
// MessageBox,
// Message
// } from 'element-ui'
// import store from '@/store'
// import storage from './storage'
import { Toast } from "vant";
// 创建 axios instance
const service = axios.create({
baseURL: "https://app.chinesenooddles.com", // url = base url + request url
// withCredentials: true, // 跨域请求时发送cookies
timeout: 5000 // 请求超时
});
// 请求拦截器
service.interceptors.request.use(
config => {
// 在Vuex中 getters 获取一下token
if (localStorage.getItem("token")) {
// 让每个请求都携带 token
// 自定义['X-Token']
// 设置headers 中的 ['X-Token'] = storage.get('token')
// config.headers['token'] = localStorage.getItem('token')
}
return config;
},
error => {
// 处理请求错误
console.log(error); // for debug
return Promise.reject(error);
}
);
// 响应拦截器
service.interceptors.response.use(
/**
*如果您想要获取诸如头或状态之类的http信息
*请返回response=>response
*/
/**
*通过自定义代码确定请求状态
*您还可以通过HTTP状态代码判断状态
*/
response => {
console.log(response);
const res = response.data;
// 如果自定义代码不是200,则判断为错误。
if (res.code !== 1) {
return Promise.reject(res);
// Toast({
// message: res.message || 'Error',
// type: 'error',
// duration: 5 * 1000
// })
// // 50008:非法令牌;50012:其他客户端登录;50014:令牌过期
// if (res.code === 50008 || res.code === 50012 || res.code === 50014) {
// // 重新登录
// MessageBox.confirm('您已注销,您可以取消停留在此页,或重新登录', 'Confirm logout', {
// confirmButtonText: 'Re-Login',
// cancelButtonText: 'Cancel',
// type: 'warning'
// }).then(() => {
// store.dispatch('user/resetToken').then(() => {
// location.reload()
// })
// })
// }
// return Promise.reject(new Error(res.message || 'Error'))
} else {
return res;
}
},
error => {
console.log("err" + error); // for debug
// Message({
// message: error.message,
// type: 'error',
// duration: 5 * 1000
// })
return Promise.reject(error);
}
);
export { service };
export function uploadFile(Url, data) {
//上传图片的方法
return new Promise((resolve, reject) => {
let instance = axios.create({
baseURL: "https://app.chinesenooddles.com/api/",
headers: {
"Content-Type": "multipart/form-data"
}
});
instance
.post(Url, data)
.then(res => {
resolve(res.data.data);
})
.catch(error => {
reject(error.data);
});
});
}