12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- import axios from "axios";
- import { MessageBox, Message } from "element-ui";
- import store from "@/store";
- import { getToken } from "@/utils/auth";
- // create an axios instance
- const service = axios.create({
- baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
- // withCredentials: true, // send cookies when cross-domain requests
- timeout: 5000 // request timeout
- });
- // request interceptor
- service.interceptors.request.use(
- config => {
- // do something before request is sent
- // contentType: "application/x-www-form-urlencoded",
- config.headers["contentType"] = "application/x-www-form-urlencoded";
- // if (store.getters.token) {
- // // let each request carry token
- // // ['X-Token'] is a custom headers key
- // // please modify it according to the actual situation
- // config.headers['X-Token'] = getToken()
- // }
- return config;
- },
- error => {
- // do something with request error
- console.log(error); // for debug
- return Promise.reject(error);
- }
- );
- // response interceptor
- service.interceptors.response.use(
- /**
- * If you want to get http information such as headers or status
- * Please return response => response
- */
- /**
- * Determine the request status by custom code
- * Here is just an example
- * You can also judge the status by HTTP Status Code
- */
- response => {
- console.log(response);
- const res = response.data;
- // if the custom code is not 20000, it is judged as an error.
- if (res.code == -1) {
- Message({
- message: res.message || "Error",
- type: "error",
- duration: 5 * 1000
- });
- // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
- if (res.code === 50008 || res.code === 50012 || res.code === 50014) {
- // to re-login
- MessageBox.confirm(
- "您已注销,您可以取消停留在该页上,或重新登录",
- "确认注销",
- {
- confirmButtonText: "重新登录",
- cancelButtonText: "取消",
- 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 default service;
|