From a4558c32b2b7630236f9f4323c79033879c1378b Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: 星期六, 23 十月 2021 10:23:32 +0800
Subject: [PATCH] 解析blob响应是否登录失效
---
ruoyi-ui/src/plugins/download.js | 45 +++++++++++++++++++++++++++++++++++----------
1 files changed, 35 insertions(+), 10 deletions(-)
diff --git a/ruoyi-ui/src/plugins/download.js b/ruoyi-ui/src/plugins/download.js
index cb10ab0..2aa8122 100644
--- a/ruoyi-ui/src/plugins/download.js
+++ b/ruoyi-ui/src/plugins/download.js
@@ -1,6 +1,7 @@
import { saveAs } from 'file-saver'
import axios from 'axios'
import { getToken } from '@/utils/auth'
+import { Message } from 'element-ui'
const baseURL = process.env.VUE_APP_BASE_API
@@ -12,9 +13,14 @@
url: url,
responseType: 'blob',
headers: { 'Authorization': 'Bearer ' + getToken() }
- }).then(res => {
- const blob = new Blob([res.data])
- this.saveAs(blob, decodeURI(res.headers['download-filename']))
+ }).then(async (res) => {
+ const isLogin = await this.blobValidate(res.data);
+ if (isLogin) {
+ const blob = new Blob([res.data])
+ this.saveAs(blob, decodeURI(res.headers['download-filename']))
+ } else {
+ Message.error('鏃犳晥鐨勪細璇濓紝鎴栬�呬細璇濆凡杩囨湡锛岃閲嶆柊鐧诲綍銆�');
+ }
})
},
resource(resource) {
@@ -24,9 +30,14 @@
url: url,
responseType: 'blob',
headers: { 'Authorization': 'Bearer ' + getToken() }
- }).then(res => {
- const blob = new Blob([res.data])
- this.saveAs(blob, decodeURI(res.headers['download-filename']))
+ }).then(async (res) => {
+ const isLogin = await this.blobValidate(res.data);
+ if (isLogin) {
+ const blob = new Blob([res.data])
+ this.saveAs(blob, decodeURI(res.headers['download-filename']))
+ } else {
+ Message.error('鏃犳晥鐨勪細璇濓紝鎴栬�呬細璇濆凡杩囨湡锛岃閲嶆柊鐧诲綍銆�');
+ }
})
},
zip(url, name) {
@@ -36,13 +47,27 @@
url: url,
responseType: 'blob',
headers: { 'Authorization': 'Bearer ' + getToken() }
- }).then(res => {
- const blob = new Blob([res.data], { type: 'application/zip' })
- this.saveAs(blob, name)
+ }).then(async (res) => {
+ const isLogin = await this.blobValidate(res.data);
+ if (isLogin) {
+ const blob = new Blob([res.data], { type: 'application/zip' })
+ this.saveAs(blob, name)
+ } else {
+ Message.error('鏃犳晥鐨勪細璇濓紝鎴栬�呬細璇濆凡杩囨湡锛岃閲嶆柊鐧诲綍銆�');
+ }
})
},
saveAs(text, name, opts) {
saveAs(text, name, opts);
- }
+ },
+ async blobValidate(data) {
+ try {
+ const text = await data.text();
+ JSON.parse(text);
+ return false;
+ } catch (error) {
+ return true;
+ }
+ },
}
--
Gitblit v1.9.3