mirror of
https://github.com/iczer/vue-antd-admin
synced 2025-04-06 04:00:06 +08:00
72 lines
1.8 KiB
JavaScript
72 lines
1.8 KiB
JavaScript
import Cookie from 'js-cookie'
|
|
// 401拦截
|
|
const resp401 = {
|
|
/**
|
|
* 响应数据之前做点什么
|
|
* @param response 响应对象
|
|
* @param options 应用配置 包含: {router, i18n, store, message}
|
|
* @returns {*}
|
|
*/
|
|
onFulfilled(response, options) {
|
|
const {message} = options
|
|
if (response.status === 401) {
|
|
message.error('无此接口权限')
|
|
}
|
|
return response
|
|
},
|
|
/**
|
|
* 响应出错时执行
|
|
* @param error 错误对象
|
|
* @param options 应用配置 包含: {router, i18n, store, message}
|
|
* @returns {Promise<never>}
|
|
*/
|
|
onRejected(error, options) {
|
|
const {message} = options
|
|
message.error(error.message)
|
|
return Promise.reject(error)
|
|
}
|
|
}
|
|
|
|
const resp403 = {
|
|
onFulfilled(response, options) {
|
|
const {message} = options
|
|
if (response.status === 403) {
|
|
message.error(`请求被拒绝`)
|
|
}
|
|
return response
|
|
}
|
|
}
|
|
|
|
const reqCommon = {
|
|
/**
|
|
* 发送请求之前做些什么
|
|
* @param config axios config
|
|
* @param options 应用配置 包含: {router, i18n, store, message}
|
|
* @returns {*}
|
|
*/
|
|
onFulfilled(config, options) {
|
|
const {message} = options
|
|
const {url, xsrfCookieName} = config
|
|
if (url.indexOf('login') === -1 && xsrfCookieName && !Cookie.get(xsrfCookieName)) {
|
|
message.warning('认证 token 已过期,请重新登录')
|
|
}
|
|
return config
|
|
},
|
|
/**
|
|
* 请求出错时做点什么
|
|
* @param error 错误对象
|
|
* @param options 应用配置 包含: {router, i18n, store, message}
|
|
* @returns {Promise<never>}
|
|
*/
|
|
onRejected(error, options) {
|
|
const {message} = options
|
|
message.error(error.message)
|
|
return Promise.reject(error)
|
|
}
|
|
}
|
|
|
|
export default {
|
|
request: [reqCommon], // 请求拦截
|
|
response: [resp401, resp403] // 响应拦截
|
|
}
|