vue自定义全局设置

vue2.x中在static下新建一个serverConfig.js,vue3中在public下新建一个serverConfig.js

const win = window || global
win.apiConfig = {
  developmentURL: 'http://192.168.0.101:8080/wx/', 
  productionURL: 'http://xxxxx.cn/api'
}

然后在index.html页面里面引入js.

在axios全局设置js里,设置baseURL

// import axios from 'axios';
import Nprogress from '@/plugin/Nprogress'
import store from 'store/'
import router from '@/framework/router'

axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
let apiURL = ''
if (process.env.NODE_ENV === 'production') {
  apiURL = window.apiConfig.productionURL
} else if (process.env.NODE_ENV === 'development') {
  apiURL = window.apiConfig.developmentURL
} else {
  apiURL = window.apiConfig.textURL
}

axios.defaults.baseURL = apiURL;

axios.defaults.withCredentials = true;

axios.interceptors.request.use(
  config => {
    //根据参数判断是否在header添加Authorization/token
    config.headers.token = store.state.token || '';
    config.headers.userclient = '1';
    Nprogress.start();
    return config
  }, error => {
    return Promise.reject(error);
  }
);
axios.interceptors.response.use(response => {
  // 统一处理返回状态
  Nprogress.done();
  if (response.data.code == -3) {
    sessionStorage.clear();
    router.push('/');
    return;
  }
  return response.data;
}, error => {
  console.log(error)
  // let err = error.response.data;
  Nprogress.done();
  /* if(document.querySelector('.notify')){
       return;
   }*/

});
export default axios;

这样就不需要设置跨域了,

// 跨域服务器代理 ^ 5.0.3
// app.use(
//   '/api', proxy(
//     {
//       target: 'http://xx.cn/api',
//       changeOrigin: true,
//       pathRewrite: {
//         '^/api': ''
//       }
//     }
//   ));

以后如果需要修改服务器域名,就只需要设置serverConfig.js。

你可能感兴趣的:(webpack)