File tree Expand file tree Collapse file tree 1 file changed +15
-2
lines changed Expand file tree Collapse file tree 1 file changed +15
-2
lines changed Original file line number Diff line number Diff line change @@ -74,10 +74,23 @@ service.interceptors.request.use(config => {
74
74
75
75
// 响应拦截器
76
76
service . interceptors . response . use ( async res => {
77
+ let { data } = res
77
78
// 未设置状态码则默认成功状态
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 ;
79
91
// 获取错误信息
80
- const msg = res . data . msg || errorCode [ code ] || errorCode [ 'default' ]
92
+ const msg = data . msg || errorCode [ code ] || errorCode [ 'default' ]
93
+
81
94
if ( ignoreMsgs . indexOf ( msg ) !== - 1 ) { // 如果是忽略的错误码,直接返回 msg 异常
82
95
return Promise . reject ( msg )
83
96
} else if ( code === 401 ) {
You can’t perform that action at this time.
0 commit comments