响应拦截器处理方案
获取数据端的
token
数据,通过data.data.data.token
的形式进行获取比较复杂
可以通过 axios 响应拦截器 (opens new window) 进行处理
# 代码实现
在 utils/request.js
中实现以下代码:
import axios from 'axios'
import { ElMessage } from 'element-plus'
...
// 响应拦截器
service.interceptors.response.use(
response => {
// 从服务端给我们的数据可以得到
// success 代表请求是否成功
// message 代表请求的描述信息
// data 代表服务端返回的内容
const { success, message, data } = response.data
// 要根据success的成功与否决定下面的操作
if (success) {
return data
} else {
// 业务错误
ElMessage.error(message) // 提示错误消息
// 业务失败不能进入成功的回调
return Promise.reject(new Error(message))
}
},
error => {
// TODO: 将来处理 token 超时问题
ElMessage.error(error.message) // 提示错误信息
return Promise.reject(error)
}
)
export default service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
此时,对于 vuex 中的 user 模块
就可以进行以下修改了:
this.commit('user/setToken', data.token)
1
上次更新: 2024/08/14, 04:14:33