From cba25fbcd73aab004797447a46c94faa69b205c4 Mon Sep 17 00:00:00 2001 From: 劉鈞霖 <benson@gmail.com> Date: 星期二, 30 十一月 2021 13:30:35 +0800 Subject: [PATCH] [ Fix ] 修正上個commit 應當確認關閉後才 reload 頁面 --- PAMapp/assets/ts/api/share.ts | 66 +++++++++++++++++++++++++++------ 1 files changed, 54 insertions(+), 12 deletions(-) diff --git a/PAMapp/assets/ts/api/share.ts b/PAMapp/assets/ts/api/share.ts index 680c065..52b6218 100644 --- a/PAMapp/assets/ts/api/share.ts +++ b/PAMapp/assets/ts/api/share.ts @@ -1,18 +1,60 @@ -import axios from 'axios'; import { AxiosRequestConfig, AxiosError, AxiosResponse } from 'axios'; +import ErrorMessageBox from '../errorService'; +import axios from 'axios'; +import _ from 'lodash'; + +const notRequireInterceptorErrorUrl=[ + '/otp/verify', + '/eService/authenticate', + '/login/validate/get_img_code', + '/login/validate/verify_img_code', +]; export const service = axios.create({ - baseURL: process.env.BASE_URL -}) - -service.interceptors.request.use(function (config: AxiosRequestConfig) { - return config; -}, function (error: AxiosError) { - return Promise.reject(error); + baseURL: process.env.BASE_URL, + withCredentials: true }); -service.interceptors.response.use(function (response: AxiosResponse) { - return response; -}, function (error: AxiosError) { +service.interceptors.request.use( + (config:AxiosRequestConfig)=>{ + loadingStart(); + return config; + } +); + +service.interceptors.response.use( + (response:AxiosResponse)=>{ + loadingFinish(); + return response; // maybe can use response.data + }, + (error:AxiosError)=>{ + loadingFinish(); + showErrorMessageBox(error) return Promise.reject(error); -}); \ No newline at end of file + } +); + +function loadingStart(): void { + window.$nuxt.$loading.start(); +}; + +function loadingFinish(): void { + window.$nuxt.$loading.finish(); +}; + +function showErrorMessageBox(error:any):void{ + if(!_.includes(notRequireInterceptorErrorUrl,error.config.url)){ + switch (error.response.status) { + case 401: + ErrorMessageBox('���暹��').then(()=>{ + location.href='/'; + window.$nuxt.$store.commit('localStorage/storageClear'); + }); + break; + default: + ErrorMessageBox(); + break; + } + + } +}; -- Gitblit v1.8.0