axios.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. "use strict";
  2. import axios from "axios"
  3. // import router from '../router/index'
  4. import { browser } from '@/common/common'
  5. // Full config: https://github.com/axios/axios#request-config
  6. // axios.defaults.baseURL = process.env.baseURL || process.env.apiUrl || '';
  7. // axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
  8. // axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
  9. let config = {
  10. // baseURL: process.env.baseURL || process.env.apiUrl || ""
  11. // timeout: 60 * 1000, // Timeout
  12. // withCredentials: true, // Check cross-site Access-Control
  13. // transformRequest: [function(data) {
  14. // console.log(data)
  15. // if(!data.qStringify) {
  16. // data = qs.stringify({
  17. // ...data
  18. // })
  19. // }
  20. // return data
  21. // }]
  22. };
  23. const _axios = axios.create(config);
  24. _axios.interceptors.request.use(
  25. function(config) {
  26. // Do something before request is sent
  27. // 判断用户是否登录
  28. if(browser().android || browser().iPhone) { // app里面
  29. let userInfo = localStorage.getItem('Authorization')
  30. if(userInfo) {
  31. config.headers['Authorization'] = userInfo
  32. }
  33. } else { // 网页里面
  34. let auth = localStorage.getItem('userInfo')
  35. if(auth) {
  36. config.headers['Authorization'] = auth
  37. }
  38. }
  39. return config;
  40. },
  41. function(error) {
  42. // Do something with request error
  43. return Promise.reject(error);
  44. }
  45. );
  46. // Add a response interceptor
  47. _axios.interceptors.response.use(
  48. function(response) {
  49. // Do something with response data
  50. if(response.data.code == 403) {
  51. window.localStorage.removeItem('userInfo') // 删除用户信息
  52. window.localStorage.removeItem('Authorization') // 删除用户信息
  53. // android ios 注册方法
  54. if(browser().android) {
  55. DAYA.postMessage(JSON.stringify({api: 'login'}))
  56. } else if(browser().iPhone) {
  57. window.webkit.messageHandlers.DAYA.postMessage(JSON.stringify({api: 'login'}))
  58. }
  59. }
  60. return response;
  61. },
  62. function(error) {
  63. // Do something with response error
  64. return Promise.reject(error);
  65. }
  66. );
  67. // Plugin.install = function(Vue) {
  68. // Vue.axios = _axios;
  69. // window.axios = _axios;
  70. // Object.defineProperties(Vue.prototype, {
  71. // axios: {
  72. // get() {
  73. // return _axios;
  74. // }
  75. // },
  76. // $axios: {
  77. // get() {
  78. // return _axios;
  79. // }
  80. // },
  81. // });
  82. // };
  83. // Vue.use(Plugin)
  84. export default _axios