封装请求增加取消请求方法

This commit is contained in:
YeMingfei666 2024-09-05 13:37:22 +08:00
parent 5c3028a2d2
commit ac11e23df5
2 changed files with 41 additions and 1 deletions

View File

@ -0,0 +1,29 @@
// 最新的一个请求
let cancel = null
// 所有请求
let cancelTokenList = []
function setToken(cancelToken) {
cancel = cancelToken
cancelTokenList.push(cancelToken)
}
function cancelToken() {
cancel && cancel()
cancelTokenList.pop()
}
function clearAllToken() {
while (cancelTokenList.length > 0) {
let cancel = cancelTokenList.pop()
console.log(cancel, 'cancel')
cancel && cancel()
}
}
export {
setToken,
cancelToken,
clearAllToken,
}

View File

@ -5,7 +5,7 @@ import store from '../store'
import { getToken } from '@/utils/auth'
import Config from '@/settings'
import Cookies from 'js-cookie'
import { setToken } from '@/utils/globalCancelToken.js'
// 创建axios实例
const service = axios.create({
// baseURL: process.env.NODE_ENV === 'production' ? process.env.VUE_APP_BASE_API : '/',
@ -23,6 +23,8 @@ service.interceptors.request.use(
config.headers['loginName'] = 'admin'
config.headers['token'] = 'eyJhbGciOiJIUzI1NiJ9.eyJ1c2VyVHlwZSI6Ik1HIiwiZXhwIjoxNjkwMTgwNzE2LCJ1c2VySWQiOiIyNDQiLCJpYXQiOjE2ODg3MDk0ODcsImxvZ2luTmFtZSI6ImFkbWluIn0.lqxxvv2-FcecQngMBorz4MpkB3mIJQDG-IUULQyV-KQ'
config.headers["userId"] = '244'
// 添加可取消请求配置
config.cancelToken = new axios.CancelToken(c => setToken(c))
return config
},
error => {
@ -37,6 +39,15 @@ service.interceptors.response.use(
},
error => {
console.log(error);
if (axios.isCancel(error)) {
console.log('请求已取消')
Notification.error({
title: '请求已取消',
duration: 5000
})
return Promise.reject('请求已取消')
}
// 兼容blob下载出错json提示
if (error.response.data instanceof Blob && error.response.data.type.toLowerCase().indexOf('json') !== -1) {
const reader = new FileReader()