http.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import axios from 'axios'
  2. import {
  3. DOMIN,
  4. mapJson,
  5. wsUrl
  6. } from './server.js'
  7. import router from '@/router'
  8. import {
  9. Message
  10. } from "element-ui"
  11. import qs from 'qs'
  12. // Vue.use(router);
  13. // import Login from '@/page/login/login'
  14. import Vue from 'vue'
  15. Vue.prototype.DOMIN = DOMIN
  16. Vue.prototype.wsUrl = wsUrl // 实时通信Url
  17. Vue.prototype.mapJson = mapJson //请求地图json,不带端口号
  18. // console.log(DOMIN)
  19. axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
  20. axios.defaults.timeout = 30000;
  21. axios.defaults.withCredentials = true //axios请求时携带session
  22. axios.defaults.crossDomain = true
  23. axios.defaults.baseURL = DOMIN
  24. // axios请求前的拦截
  25. axios.interceptors.request.use(req => {
  26. // 判断当前请求url为weatherCondition或ipLocation时就不将axios的请求地址更换
  27. let session = localStorage.getItem('session');
  28. // console.log(session)
  29. // let session = 'd5npOg/04dWL6f2YiywzUSyOzqayqnj7Qx8GNMyJhXMc='
  30. let url;
  31. if (req.url.split('=')[1]) {
  32. url = req.url.split('=')[1]
  33. } else {
  34. url = req.url.split('api/')[1]
  35. }
  36. // if (req.method === 'post') {
  37. // // req.data = qs.stringify(req.data)
  38. // if (req.url !== '/api/api_gateway?method=user.login.login_user') {
  39. // req.data = req.data ? req.data + '&token=' + session : 'token=' + session;
  40. // }
  41. // }
  42. url = req.url.split('=')[1]
  43. if (url !== 'sysmenage.usermanager.user_login' && url !== 'monitor_manage.cbd_manage.add_img' && req.url.indexOf('trap_export') == -1 && url !== "monitor_manage.home_map.home_theme"&& req.url.indexOf('monitor_point_export') == -1) {
  44. req.data = req.data ? req.data + '&token=' + session : 'token=' + session;
  45. }
  46. return req
  47. }, error => {
  48. return Promise.reject(error)
  49. })
  50. // //axios请求后的拦截
  51. axios.interceptors.response.use(res => {
  52. if (res.data.data) {
  53. // res.data.data.session_key && localStorage.setItem('session', res.data.data.session_key);
  54. }
  55. // console.log(res.data.message)
  56. if (res.data.message != "" && res.data.message != undefined) {
  57. if(res.data.errorCode==403){
  58. setTimeout(()=>{
  59. router.push("/Login");
  60. },3000)
  61. }
  62. Message.warning(res.data.message);
  63. }
  64. return res
  65. }, error => {
  66. return Promise.reject(error)
  67. })