| @@ -43,6 +43,11 @@ axios.interceptors.request.use( | |||||
| }, | }, | ||||
| ); | ); | ||||
| const ignoreCode = { | |||||
| ignoreError: ['50545005', '50546083'], | |||||
| regardError: ['50545013', '50545014', '50545016', '5054500D'], | |||||
| }; | |||||
| // Add a response interceptor | // Add a response interceptor | ||||
| axios.interceptors.response.use( | axios.interceptors.response.use( | ||||
| function(response) { | function(response) { | ||||
| @@ -61,15 +66,9 @@ axios.interceptors.response.use( | |||||
| function(error) { | function(error) { | ||||
| const errorData = i18n.messages[i18n.locale].error; | const errorData = i18n.messages[i18n.locale].error; | ||||
| const path = router.currentRoute.path; | const path = router.currentRoute.path; | ||||
| if (path === '/debugger' || path === '/offline-debugger') { | if (path === '/debugger' || path === '/offline-debugger') { | ||||
| if ( | |||||
| error.response && | |||||
| error.response.data && | |||||
| error.response.data.error_code === '5054B281' | |||||
| ) { | |||||
| router.push('/'); | |||||
| } | |||||
| // eslint-disable-next-line camelcase | |||||
| if (error.response?.data?.error_code === '5054B281') router.push('/'); | |||||
| return Promise.reject(error); | return Promise.reject(error); | ||||
| } | } | ||||
| // error returned by backend | // error returned by backend | ||||
| @@ -79,24 +78,14 @@ axios.interceptors.response.use( | |||||
| error.response.data.error_code | error.response.data.error_code | ||||
| ) { | ) { | ||||
| const errorCode = error.response.data.error_code.toString(); | const errorCode = error.response.data.error_code.toString(); | ||||
| const ignoreCode = { | |||||
| ignoreError: ['50545005', '50546083'], | |||||
| regardError: ['50545013', '50545014', '50545016', '5054500D'], | |||||
| }; | |||||
| if (ignoreCode.ignoreError.includes(errorCode)) { | if (ignoreCode.ignoreError.includes(errorCode)) { | ||||
| if (errorData[errorCode]) { | if (errorData[errorCode]) { | ||||
| Vue.prototype.$message.error(errorData[errorCode]); | Vue.prototype.$message.error(errorData[errorCode]); | ||||
| } | } | ||||
| setTimeout(()=>{ | |||||
| router.push('/'); | |||||
| }, 2500); | |||||
| setTimeout(() => router.push('/'), 2500); | |||||
| return Promise.reject(error); | return Promise.reject(error); | ||||
| } | } | ||||
| if ( | |||||
| path.includes('-dashboard') || | |||||
| ignoreCode.regardError.includes(errorCode)) { | |||||
| if (path.includes('-dashboard') || ignoreCode.regardError.includes(errorCode)) { | |||||
| return Promise.reject(error); | return Promise.reject(error); | ||||
| } | } | ||||
| if (errorData[errorCode]) { | if (errorData[errorCode]) { | ||||
| @@ -104,16 +93,14 @@ axios.interceptors.response.use( | |||||
| } | } | ||||
| return Promise.reject(error); | return Promise.reject(error); | ||||
| } else { | } else { | ||||
| // error returned by browser | |||||
| // error returned by browser | |||||
| if (error.code === 'ECONNABORTED' && /^timeout/.test(error.message)) { | if (error.code === 'ECONNABORTED' && /^timeout/.test(error.message)) { | ||||
| if (error.config.headers.ignoreError) { | |||||
| return Promise.reject(error); | |||||
| } | |||||
| if (error.config.headers.ignoreError) return Promise.reject(error); | |||||
| // timeout processing | // timeout processing | ||||
| Vue.prototype.$message.error(i18n.messages[i18n.locale].public.timeout); | Vue.prototype.$message.error(i18n.messages[i18n.locale].public.timeout); | ||||
| return Promise.reject(error); | return Promise.reject(error); | ||||
| } else if (error.message === 'routeJump') { | } else if (error.message === 'routeJump') { | ||||
| // route jump | |||||
| // route jump | |||||
| return false; | return false; | ||||
| } else { | } else { | ||||
| // show network error | // show network error | ||||