| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- 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
- // console.log(store());
- // 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 => {
- const res = response.data;
- // if the custom code is not 20000, it is judged as an error.
- if (res.status !== 1) {
- // 不提示获取前台用户信息错误
- if (re.status !== -99) {
- 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(
- "You have been logged out, you can cancel to stay on this page, or log in again",
- "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 default service;
|