problem:
Multiple interfaces return an error message, suggesting that too much information page looked bored.
http.js
import axios from 'axios' import { Message } from 'element-ui' import router from '../router' const showMessage = Symbol('showMessage') // 重写 class DonMessage { success (options, single = true) { this[showMessage]('success', options, single) } warning (options, single = true) { this[showMessage]('warning', options, single) } info (options, single = true) { this[showMessage]('info', options, single) } error (options, single = true) { this[showMessage]('error', options, single) } [showMessage] (type, options, single) { if (single) { // 判断是否已存在Message if (document.getElementsByClassName('el-message').length === 0) { Message[type](options) } } else { Message[type](options) } } }
// 使用这个 var MessageOnce = new DonMessage(); axios.interceptors.request.use(config => { let user = JSON.parse(window.localStorage.getItem('user')); var Authentication = ""; if (user) { console.log(user.Authentication); Authentication = user.Authentication; } config.headers.common['Authentication'] = 'xxxxxxx'; return config; }, err => { Message.error({ message: '请求超时!' }); // return Promise.resolve(err); }) axios.interceptors.response.use(data => { The console.log (data.status); return Data; }, ERR => { Switch (err.response.status) { Case 401 : MessageOnce.error ({Message: "login information has expired, log back" } ); window.localStorage.removeItem ( "User" ); router.replace ({ path: '/' , Query: {the redirect: router.currentRoute.fullPath} }) BREAK ; Case 500 : MessageOnce.error ({Message: " internal server error "}); ,BREAK ; Case 404 : MessageOnce.error ({the Message: 'servers are eaten ⊙﹏⊙∥' }); BREAK ; Case 403 : MessageOnce.error ({the Message: '! insufficient permissions, please contact the administrator' }); BREAK ; } // return Promise.resolve (ERR); }) the let Base = 'http://192.168.0.199:8082' ; // the let Base = ''; Export postRequest = const (URL, the params) => { return Axios ({ Method: 'POST' URL: Base `$ {} {$` URL}, data: params, headers: { 'Content-Type': 'application/json; charset=utf-8' } }); } export const uploadFileRequest = (url, params) => { return axios({ method: 'post', url: `${base}${url}`, data: params, headers: { 'Content-Type': 'multipart/form-data' } }); } export const putRequest = (url, params) => { return axios({ method: 'put', url: `${base}${url}`, data: params, // transformRequest: [function (data) { // let ret = '' // for (let it in data) { // ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&' // } // return ret // }], headers: { // 'Content-Type': 'application/x-www-form-urlencoded' 'Content-Type': 'application/json; charset=utf-8' } }); } export const deleteRequest = (url) =>axios ({Return{ method: 'delete', url: `${base}${url}` }); } export const getRequest = (url) => { return axios({ method: 'get', url: `${base}${url}` }); }