响应器拦截成功弹框只跳一次

响应器拦截成功弹框只跳一次

在响应拦截成功的时候判断token令牌过期返回登录界面 并弹框
修改前
在这里插入图片描述

解决办法
新建一个message.js文件,如下:

import {Message} from 'element-ui'
// 私有属性,只在当前文件可用
const showMessage = Symbol('showMessage')
export default class domMessage {
	success (options, single = true) {
		this[showMessage]('success', options, single)
	}
	warning(options, single = true) {
		this[showMessage]('warning', options, single)
	}
	info(options, single = true) {
		this[showMessage]('info', options, single)
	}
	error(options, single = true) {
		this[showMessage]('error', options, single)
	}
	[showMessage] (type, options, single) {
		if (single) {
			// 关键代码,判断当前页是否有el-message标签,如果没有则执行弹窗操作
			if (document.getElementsByClassName('el-message').length === 0) {
				Message[type](options)
			}
		} else {
			Message[type](options)
		}
	}
}

在处理响应拦截的文件中引入message.js,如下:
在这里插入图片描述

			import axios from 'axios'
			import domMessage from './messageOnce'
			
			// new 对象实例
			const messageOnce = new domMessage()
			const http = axios.create({
				timeout: 1000 * 60 * 2,
				withCredentials: true
			})
			// 当为post请求时设置其Content-Type为application/x-www-form-urlencoded
			http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'
			// 响应拦截
			http.interceptors.response.use(res => {
				if (res.data.code === 102) {
					messageOnce.warning({
						message: '当前账号已经在其他客户端登录',
						type: 'warning'
					})
					// 这里执行清除token和跳转到登录页等操作
				}
			)





修改后

在这里插入图片描述

请无视弹框内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值