优化文件下载出现的异常(I6DLNU)
This commit is contained in:
		@@ -15,9 +15,9 @@ export default {
 | 
			
		||||
      url: url,
 | 
			
		||||
      responseType: 'blob',
 | 
			
		||||
      headers: { 'Authorization': 'Bearer ' + getToken() }
 | 
			
		||||
    }).then(async (res) => {
 | 
			
		||||
      const isLogin = await blobValidate(res.data);
 | 
			
		||||
      if (isLogin) {
 | 
			
		||||
    }).then((res) => {
 | 
			
		||||
      const isBlob = blobValidate(res.data);
 | 
			
		||||
      if (isBlob) {
 | 
			
		||||
        const blob = new Blob([res.data])
 | 
			
		||||
        this.saveAs(blob, decodeURIComponent(res.headers['download-filename']))
 | 
			
		||||
      } else {
 | 
			
		||||
@@ -32,9 +32,9 @@ export default {
 | 
			
		||||
      url: url,
 | 
			
		||||
      responseType: 'blob',
 | 
			
		||||
      headers: { 'Authorization': 'Bearer ' + getToken() }
 | 
			
		||||
    }).then(async (res) => {
 | 
			
		||||
      const isLogin = await blobValidate(res.data);
 | 
			
		||||
      if (isLogin) {
 | 
			
		||||
    }).then((res) => {
 | 
			
		||||
      const isBlob = blobValidate(res.data);
 | 
			
		||||
      if (isBlob) {
 | 
			
		||||
        const blob = new Blob([res.data])
 | 
			
		||||
        this.saveAs(blob, decodeURIComponent(res.headers['download-filename']))
 | 
			
		||||
      } else {
 | 
			
		||||
@@ -49,9 +49,9 @@ export default {
 | 
			
		||||
      url: url,
 | 
			
		||||
      responseType: 'blob',
 | 
			
		||||
      headers: { 'Authorization': 'Bearer ' + getToken() }
 | 
			
		||||
    }).then(async (res) => {
 | 
			
		||||
      const isLogin = await blobValidate(res.data);
 | 
			
		||||
      if (isLogin) {
 | 
			
		||||
    }).then((res) => {
 | 
			
		||||
      const isBlob = blobValidate(res.data);
 | 
			
		||||
      if (isBlob) {
 | 
			
		||||
        const blob = new Blob([res.data], { type: 'application/zip' })
 | 
			
		||||
        this.saveAs(blob, name)
 | 
			
		||||
      } else {
 | 
			
		||||
 
 | 
			
		||||
@@ -72,7 +72,7 @@ service.interceptors.response.use(res => {
 | 
			
		||||
    // 获取错误信息
 | 
			
		||||
    const msg = errorCode[code] || res.data.msg || errorCode['default']
 | 
			
		||||
    // 二进制数据则直接返回
 | 
			
		||||
    if(res.request.responseType ===  'blob' || res.request.responseType ===  'arraybuffer'){
 | 
			
		||||
    if (res.request.responseType ===  'blob' || res.request.responseType ===  'arraybuffer') {
 | 
			
		||||
      return res.data
 | 
			
		||||
    }
 | 
			
		||||
    if (code === 401) {
 | 
			
		||||
@@ -125,8 +125,8 @@ export function download(url, params, filename, config) {
 | 
			
		||||
    responseType: 'blob',
 | 
			
		||||
    ...config
 | 
			
		||||
  }).then(async (data) => {
 | 
			
		||||
    const isLogin = await blobValidate(data);
 | 
			
		||||
    if (isLogin) {
 | 
			
		||||
    const isBlob = blobValidate(data);
 | 
			
		||||
    if (isBlob) {
 | 
			
		||||
      const blob = new Blob([data])
 | 
			
		||||
      saveAs(blob, filename)
 | 
			
		||||
    } else {
 | 
			
		||||
 
 | 
			
		||||
@@ -228,12 +228,6 @@ export function tansParams(params) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 验证是否为blob格式
 | 
			
		||||
export async function blobValidate(data) {
 | 
			
		||||
  try {
 | 
			
		||||
    const text = await data.text();
 | 
			
		||||
    JSON.parse(text);
 | 
			
		||||
    return false;
 | 
			
		||||
  } catch (error) {
 | 
			
		||||
    return true;
 | 
			
		||||
  }
 | 
			
		||||
export function blobValidate(data) {
 | 
			
		||||
  return data.type !== 'application/json'
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user