https.ts 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import { useStore } from '@/store'
  2. import HttpClient, { HttpClientConfig } from 'axios-mapper'
  3. import networkConfig from '@/config/default/net.config'
  4. import { getToken } from '@/utils/cookies'
  5. import { Toast } from 'vant'
  6. import Cookies from 'js-cookie'
  7. export const https = (configobj: any = { timeout: '' }) => {
  8. // debugger
  9. let config: HttpClientConfig = {
  10. baseURL: networkConfig.host,
  11. headers: {
  12. 'token': getToken(),
  13. 'sso-token': getToken(),
  14. 'X-Forwarded-Token': getToken()
  15. }
  16. }
  17. if (configobj.timeout) {
  18. config.timeout = configobj.timeout
  19. }
  20. const https = new HttpClient(config)
  21. https.httpClient.interceptors.response.use(function (response) {
  22. return response
  23. }, function (error) {
  24. // console.log('error===')
  25. // console.log(error.response.status)
  26. // console.log(error.status)
  27. if (error.response.status === 401) {
  28. Toast('登录失效,请退出app重新登录')
  29. sessionStorage.clear()
  30. const tokenOld: any = Cookies.get('accessToken')
  31. window.location.href = `/sgh5/home?accessToken=${tokenOld}`
  32. }
  33. return Promise.reject(error)
  34. })
  35. return https
  36. }
  37. export const post = (url: any, data: any) => {
  38. return https().httpClient.post<Array<any>>(url, data).then(res => {
  39. const resData: string = JSON.parse(JSON.stringify(res.data))
  40. if (res.status >= 200 && res.status < 300) {
  41. return Promise.resolve(resData)
  42. } else {
  43. return Promise.reject(resData)
  44. }
  45. }).catch(async error => {
  46. return Promise.reject(error)
  47. })
  48. }
  49. export const getUrlParams = (key: any = 'accessToken') => {
  50. let url: any = location.search //获取url中"?"符后的字串
  51. let theRequest: any = new Object()
  52. if (url.indexOf('?') != -1) {
  53. let str: any = url.substr(1)
  54. let strs: any = str.split('&')
  55. for (var i = 0; i < strs.length; i++) {
  56. theRequest[strs[i].split('=')[0]] = strs[i].split('=')[1]
  57. }
  58. }
  59. let token: string = theRequest[key] || ''
  60. return token
  61. }