request.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import axios from 'axios'
  2. import {msgBoxNoLogin, msgBoxNoRole, msgError} from './dw-msg'
  3. // 全局的 axios 默认值
  4. axios.defaults.baseURL = process.env.DW_API_URL
  5. // 请求超时时间
  6. axios.defaults.timeout = 10000
  7. // post请求头
  8. axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
  9. const service = axios.create({
  10. // axios中请求配置有baseURL选项,表示请求URL公共部分
  11. baseURL: process.env.DW_API_URL,
  12. // 超时
  13. timeout: 10000
  14. })
  15. // 请求拦截器
  16. service.interceptors.request.use(
  17. config => {
  18. return config
  19. },
  20. error => {
  21. console.log('request-error:'+error)
  22. return Promise.error(error)
  23. })
  24. // 响应拦截器
  25. service.interceptors.response.use(
  26. response => {
  27. console.debug('response')
  28. console.debug(response)
  29. if (response.status === 200) {
  30. const {data} = response
  31. if (data.hasOwnProperty('resultCode')) {
  32. if (data.resultCode === 401) {
  33. msgBoxNoLogin()
  34. } else if (data.resultCode === 403) {
  35. msgBoxNoRole()
  36. } else if (data.resultCode !== 200) {
  37. let message = `异常码:${data.resultCode}`
  38. if (data.hasOwnProperty('resultMsg')) {
  39. message = `${data.resultMsg},异常码:${data.resultCode}`
  40. }
  41. msgError(message)
  42. }
  43. }
  44. return Promise.resolve(response)
  45. } else {
  46. return Promise.reject(response)
  47. }
  48. },
  49. error => {
  50. // 服务器状态码不是200的情况
  51. console.log('err' + error)
  52. let {message} = error
  53. if (message.includes('Network Error')) {
  54. message = '后端接口连接异常'
  55. } else if (message.includes('timeout')) {
  56. message = '系统接口请求超时'
  57. } else if (message.includes('Request failed with status code')) {
  58. const code = message.substr(message.length - 3)
  59. if (code === '401' || code === '403') {
  60. message=null
  61. if (code === '401') {
  62. msgBoxNoLogin()
  63. } else if (code === '403') {
  64. msgBoxNoRole()
  65. }
  66. } else {
  67. message = '系统接口' + message.substr(message.length - 3) + '异常'
  68. }
  69. }
  70. if (message != null) {
  71. msgError(message)
  72. }
  73. return Promise.reject(error)
  74. }
  75. )
  76. export default service