import axios from 'axios'; import store from '@/vuex/store.js'; //设置请求超时时间(10s) axios.defaults.timeout = 10000; axios.interceptors.request.use( function(config){ // return config; // } // config.url = process.env.BASEAPI+process.env.ROOT+config.url; if(sessionStorage.getItem('token') && !config.headers.requestType){ // if(!config.params){ // config.params = {}; // } config.headers['X-Requested-Token'] = sessionStorage.getItem('token'); return config; }else if(config.headers.requestType==="noToken"){ return config; } else{ // window.location.href = window.location.href.split("#")[0]+'#/login'; // return Promise.reject({message:'token无效,重新登陆'}); return config; } },function(error){ return Promise.reject(error); } ); axios.interceptors.response.use( function(response){ let location = window.location.href.split("#")[0]+'#/login'; let code = response.data.code; if(parseInt(code) === 101||parseInt(code) === 10){//token无效 // store.commit("SAVETOKEN",null); sessionStorage.removeItem('token'); window.location.href = location;//刷新页面 Promise.reject(response); } return response; },function(error){ if(error.response){ switch(error.response.status){//404,网络错误,地址有问题。 case 404: alert("网络错误!"); break; } }else{ let errorMsg = error.message; if(error.message.indexOf("timeout")>-1){ errorMsg = "请求超时"; } return Promise.resolve({//在报错的时候传回一个正常的promise对象,错误可以交到正常处理 data:{code:1,msg:error.message,extmsg:errorMsg} }); } } );