request.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /*
  2. * @Author: wt 1241351815@qq.com
  3. * @Date: 2022-04-25 10:21:19
  4. * @LastEditors: wt 1241351815@qq.com
  5. * @LastEditTime: 2022-05-12 18:19:11
  6. * @FilePath: \securityHtml\src\utils\request.js
  7. * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  8. */
  9. import axios from 'axios'
  10. import { MessageBox, Message } from 'element-ui'
  11. import store from '@/store'
  12. import { getToken } from '@/utils/auth'
  13. import Cookies from "js-cookie";
  14. let baseURL = window.PLATFROM_CONFIG.baseUrl
  15. axios.defaults.headers['Content-Type'] = 'application/json;multipart/form-data;charset=utf-8'
  16. const service = axios.create({
  17. baseURL: baseURL, // url = base url + request url
  18. timeout: 10000, // request timeout
  19. // withCredentials:true,
  20. })
  21. // request interceptor
  22. service.interceptors.request.use(config => {
  23. // 是否需要设置 token
  24. // const isToken = (config.headers || {}).isToken === false
  25. if (getToken()) {
  26. config.headers['Authorization'] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
  27. }
  28. if (config.method == 'get') {
  29. let ext_str = config.url.indexOf('?') == -1 ? '?' : '&';
  30. let obj_val = '';
  31. for (let k in config.data) {
  32. obj_val += k + "=" + config.data[k] + "&";
  33. }
  34. config.url += ext_str + obj_val;
  35. }
  36. return config
  37. },
  38. error => {
  39. // do something with request error
  40. return Promise.reject(error)
  41. }
  42. )
  43. // response interceptor
  44. service.interceptors.response.use(response => {
  45. if (response.data.status === 'SUCCESS') {
  46. return response.data;
  47. } else {
  48. if (response.data.code == "401") {
  49. MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', {
  50. confirmButtonText: '重新登录',
  51. cancelButtonText: '取消',
  52. type: 'warning'
  53. }).then(() => {
  54. store.dispatch('logout').then(() => {
  55. location.href = '/#/login';
  56. })
  57. }).catch(() => {});
  58. }
  59. }
  60. }, error => {
  61. Message({
  62. showClose: true,
  63. message: (error.response.data.msg).split(":")[1],
  64. type: 'error'
  65. });
  66. return {}
  67. })
  68. export default service