import Vue from 'vue' import ElementUI from 'element-ui'; import 'element-ui/lib/theme-chalk/index.css'; import VueAxios from 'vue-axios' import $ from 'jquery' import qs from 'qs' import App from './App' import VueRouter from "vue-router"; import router from './router/index' import axios from 'axios' import api from './assets/api/controller.js' import swal from 'sweetalert' Vue.prototype.LOCATIONVUE = "http://127.0.0.1:80/"; //前端本地端口 Vue.prototype.HaveJson = (val) => { return JSON.parse(JSON.stringify(val)) } Vue.use(VueAxios, axios) Vue.config.productionTip = false Vue.use(VueRouter); Vue.use(ElementUI); Vue.use(qs); Vue.use(api); const javaApi = 'http://127.0.0.1:8001' // const javaApi = 'http://127.0.0.1:8001/' axios.defaults.baseURL = javaApi axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8' // x-www-form-urlencoded axios.defaults.withCredentials = true axios.defaults.crossDomain = true Vue.prototype.$axios = axios import { Message } from 'element-ui'; axios.interceptors.request.use(function(config) { let tk = sessionStorage.getItem("token") let token; if (tk != undefined && tk != '') { token = tk } if (token) { config.headers['token'] = "" + token // config.headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8' // config.headers['Content-Type'] = 'application/json' } // console.log(config) if (config.method === 'post' || config.method === 'put') { config.data = qs.stringify(config.data) } if (config.headers['Content-Type'] == 'application/json') { config.data = qs.parse(config.data) // console.log(config.data) } return config }, function(error) { return Promise.reject(error) }) axios.interceptors.response.use(res => { return res.data }, async function(err) { if (JSON.stringify(err).indexOf('timeout of') > -1) { Message.error('请求超时,请检查网络设置') } else if (JSON.stringify(err).indexOf('ERR_CONNECTION_RESET') > -1 || JSON.stringify(err).indexOf( 'Network Error') > -1) { Message.error('网络连接错误') } else if (err.response.status == "503") { Message.error('服务未响应') } else if (err.response.status == "404") { Message.error('请求失败,链接地址不存在') } else if (err.response.status == "403") { Message.error('token不存在') } else if (err.response.status == "402") { Message.error('无效签名,请重新登录') localStorage.removeItem('autoenter') window.location.href = '/enter' } else if (err.response.status == "401") { await axios.post(javaApi + "user/refresh", { reToken: sessionStorage.getItem('reToken') }).then(res => { if (res.data.code == 201) { Message.error('认证失败,需要重新登录') localStorage.removeItem('autoenter') window.location.href = '/enter' return Promise.reject(err) } sessionStorage.setItem('token', res.data.token) sessionStorage.setItem('reToken', res.data.reToken) }) return axios(err.config) } else if (err.response.status == "500") { Message.error('服务端出现错误') } return Promise.reject(err) }) // 路由拦截器 // router.beforeEach((to, from, next) => { // // 路径为product时验证是否登录,没有跳转至登录页面 // if (to.path.indexOf('/') > -1 && to.path.indexOf('/enter') != 0) { // if (sessionStorage.getItem('token') == null || sessionStorage.getItem('token') == '' || sessionStorage.getItem( // 'token') == undefined) { // next({ // path: '/enter' // }) // } // } // next() // }); new Vue({ el: '#app', router, render: h => h(App) });