main.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. // The Vue build version to load with the `import` command
  2. // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
  3. import Vue from "vue";
  4. import App from "./App";
  5. import router from "./router";
  6. import axios from "axios";
  7. import Cube from "./index";
  8. import Store from "./store/store";
  9. // import http from "../src/request/http";
  10. import "lib-flexible";
  11. import "./filters";
  12. console.info('v1.0.2');
  13. Vue.use(Cube);
  14. // 设置默认请求接口(删掉地址栏中的后缀)
  15. let domainName = location.host; //域名
  16. let protocolName = document.location.protocol; //http协议
  17. axios.defaults.baseURL = protocolName + "//" + domainName;
  18. // axios.defaults.baseURL = http.host;
  19. // axios.defaults.timeout = 5000;
  20. axios.defaults.headers["Content-Type"] = "application/json;charset=UTF-8";
  21. Vue.prototype.$http = axios;
  22. Vue.config.productionTip = false;
  23. // http request拦截器 添加一个请求拦截器
  24. axios.interceptors.request.use(
  25. function(config) {
  26. document.cookie = "JSESSIONID=A835F24A945D3E045DEE5FA5C3AD40AB";
  27. let token = window.localStorage.getItem("token");
  28. if (token) {
  29. config.headers["access-token"] = token; //将token放到请求头发送给服务器
  30. }
  31. return config;
  32. },
  33. function(error) {
  34. return Promise.reject(error);
  35. }
  36. );
  37. let count = 0;
  38. // http response 拦截器
  39. axios.interceptors.response.use(
  40. response => {
  41. if (response.data.state == 433 && count < 1) {
  42. count++;
  43. alert(response.data.error + ",请重新登录!");
  44. router.push({ path: "/login" });
  45. window.location.reload();
  46. }
  47. return response;
  48. }
  49. // error => {
  50. // if (error.response) {
  51. // alert(error.response.status)
  52. // switch (error.response.status) {
  53. // case 401:
  54. // // 401 清除token信息并跳转到登录页面
  55. // // 只有在当前路由不是登录页面才跳转
  56. // // router.currentRoute.path !== 'login' &&
  57. // // router.replace({
  58. // // path: '/login',
  59. // // // query: {
  60. // // // redirect: router.currentRoute.path
  61. // // // },
  62. // // })
  63. // router.push({ path: "/login" });
  64. // }
  65. // }
  66. // // console.log(JSON.stringify(error));//console : Error: Request failed with status code 402
  67. // return Promise.reject(response.data.error)
  68. // },
  69. );
  70. /* eslint-disable no-new */
  71. new Vue({
  72. el: "#app",
  73. router,
  74. components: {
  75. App
  76. },
  77. template: "<App/>",
  78. store: Store
  79. });