import { resolve } from 'patch-package/dist/path'; import Setting from '~/setting' // import { Message } from "element-ui" export default function ({ redirect, $axios, app }) { // 数据访问前缀 // $axios.defaults.baseURL = Setting.apiBaseURL; if (process.server) { // 获取服务端的token // var token = getCookie.getcookiesInServer(req).token; } if (process.client) { // 获取客户端token // var token = getCookie.getcookiesInClient('token'); } // 请求拦截器 $axios.interceptors.request.use( config => { if (config.data?.couponURL) { config.baseURL = Setting.couponBaseURL } else { config.baseURL = Setting.apiBaseURL; } let local = localStorage.getItem('auth.strategy'); let token = localStorage.getItem(`auth._token.${local}`); // let token = localStorage.getItem("token"); // if (token) { // config.headers.common['token'] = token; // } if (config.method == 'get') { if (typeof config.params == 'undefined') { config.params = {} } config.params['app_type'] = 'pc'; config.params['app_type_name'] = 'PC'; if (token) { config.params['token'] = token; } } else { if (typeof config.data == 'undefined') { config.data = {} } config.data['app_type'] = 'pc'; config.data['app_type_name'] = 'PC'; if (token) { config.data['token'] = localStorage.getItem("token"); if (localStorage.getItem("drugstoreObj")) { const drugstoreObj = JSON.parse(localStorage.getItem("drugstoreObj")) if (drugstoreObj && drugstoreObj.id) { config.data['store_id'] = drugstoreObj.id; } } } } return config }, error => { // do something with request error return Promise.reject(error) } ) // response拦截器,数据返回后,可以先在这里进行一个简单的判断 $axios.interceptors.response.use( response => { // 获取服务器类型 if (process.browser) { if (!localStorage.getItem("SERVER_TYPE")) { localStorage.setItem("SERVER_TYPE", response.headers['server']); } } let res = {} try { res = JSON.parse(response.data) } catch (err) { } let code = res.code; switch (code) { case 0: return res case 10067: return res case 400: return Promise.reject(res.message) case 401: redirect('/login'); localStorage.clear(); return Promise.reject(res.message) case 402: return Promise.reject(res.message) case -10009: redirect('/login'); localStorage.clear(); return Promise.reject(res.message) case -10010: redirect('/login'); localStorage.clear(); return Promise.reject(res.message) case 410000: case 410001: case 410002: app.$cookies.set("fromPath", location.pathname + location.search); let local = localStorage.getItem('auth.strategy'); app.$cookies.remove(`auth._token.${local}`); localStorage.clear(); redirect('/login'); return Promise.reject(res.message) // app.$auth.logout().then(res=>{ // // }) break default: // Message({ // message: res.message || 'Error', // type: 'error', // duration: 2 * 1000 // }) return Promise.reject(res.message) } }, error => { if (process.client) { } // if(error.response.status == 500){ // // http状态500,服务器内部错误,重定向到500页面 // redirect("/500.htm") // } // if(error.response.status == 404){ // // http状态500,请求API找不到,重定向到404页面 // redirect("/404.html") // } return Promise.reject(error || error.message) // 返回接口返回的错误信息 }) }