Skip to content

Commit edc7293

Browse files
committed
【修复】导出 Excel 时,发生异常时,进行提示
1 parent 102a079 commit edc7293

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

src/utils/request.js

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,23 @@ service.interceptors.request.use(config => {
7474

7575
// 响应拦截器
7676
service.interceptors.response.use(async res => {
77+
let { data } = res
7778
// 未设置状态码则默认成功状态
78-
const code = res.data.code || 200;
79+
// 二进制数据则直接返回,例如说 Excel 导出
80+
if (
81+
res.request.responseType === 'blob' ||
82+
res.request.responseType === 'arraybuffer'
83+
) {
84+
// 注意:如果导出的响应为 json,说明可能失败了,不直接返回进行下载
85+
if (res.data.type !== 'application/json') {
86+
return res.data
87+
}
88+
data = await new Response(res.data).json()
89+
}
90+
const code = data.code || 200;
7991
// 获取错误信息
80-
const msg = res.data.msg || errorCode[code] || errorCode['default']
92+
const msg = data.msg || errorCode[code] || errorCode['default']
93+
8194
if (ignoreMsgs.indexOf(msg) !== -1) { // 如果是忽略的错误码,直接返回 msg 异常
8295
return Promise.reject(msg)
8396
} else if (code === 401) {

0 commit comments

Comments
 (0)