本地项目需要下载阿里云上的文件,而且需要前端下载后打包1、配置多个代理
devServer: {host: '0.0.0.0',port: port,proxy: {[process.env.VUE_APP_BASE_API]: {//配置1target: `http://192.168.0.114:8088`,//本地后端接口changeOrigin: true,pathRewrite: {['^' + process.env.VUE_APP_BASE_API]: ''}},'/oa': {//配置2target: 'http://hsh-dongyu.oss-cn-beijing.aliyuncs.com/',  //目标接口域名pathRewrite: {'^/oa': '/oa'   //重写接口},changeOrigin: true,  //是否跨域},},disableHostCheck: true
},
2、代理地址
http://hsh-dongyu.oss-cn-beijing.aliyuncs.com/oa/1608795278991/%25E5%2593%25A6%25E5%259A%25AF%25E5%259A%25AF.docx?Expires=1924154962&OSSAccessKeyId=LTAI4G2mj8FUZ9g8xRrKSCV1&Signature=MUFTmuL8BiA0335HK0D94QrXGxxxxxxx
http://hsh-dongyu.oss-cn-beijing.aliyuncs.com/oa/1608795278991/%25E5%2593%25A6%25E5%259A%25AF%25E5%259A%25AF.docx?Expires=1924154962&OSSAccessKeyId=LTAI4G2mj8FUZ9g8xRrKSCV1&Signature=MUFTmuL8BiA0335HK0D94QrXGxxxxxxx3、修改地址,使其匹配代理
var url1 = '上面地址1';
var url2 = '上面地址2';
url2 = url2.slice(url2.indexOf('/oa')) //'/oa/1608795278991/%25E5%2593%25A6%25E5%259A%25AF%25E5%259A%25AF.docx?Expires=1924154962&OSSAccessKeyId=LTAI4G2mj8FUZ9g8xRrKSCV1&Signature=MUFTmuL8BiA0335HK0D94QrXGxxxxxxx'
url2 = url2.slice(url2.indexOf('/oa'))//'/oa/1608795278991/%25E5%2593%25A6%25E5%259A%25AF%25E5%259A%25AF.docx?Expires=1924154962&OSSAccessKeyId=LTAI4G2mj8FUZ9g8xRrKSCV1&Signature=MUFTmuL8BiA0335HK0D94QrXGxxxxxxx'
//上面地址修改后就能够正常代理了
4、安装下载打包的依赖包
npm add axios
npm add jszip
npm add file-saver
5、封装下载方法
import axios from 'axios'
import JSZip from 'jszip'
import FileSaver from 'file-saver'
const getFile = url => {return new Promise((resolve, reject) => {axios({method:'get',url,responseType: 'blob',// headers: {'Content-Type': 'multipart/form-data'}}).then(data => {resolve(data.data)}).catch(error => {reject(error.toString())})})
}
export default {methods: {handleBatchDownload() {const data = [url1 , url2] // 需要下载打包的路径const zip = new JSZip()const cache = {}const promises = []data.forEach(item => {const promise = getFile(item).then(data => { // 下载文件, 并存成ArrayBuffer对象const arr_name = item.split("/") //根据业务需求来修改文件名称,不同项目文件名称获取方法不尽相同。const file_name = arr_name[arr_name.length - 1] // 获取文件名zip.file(file_name, data, { binary: true }) // 逐个添加文件cache[file_name] = data})promises.push(promise)})Promise.all(promises).then(() => {zip.generateAsync({type:"blob"}).then(content => { // 生成二进制流FileSaver.saveAs(content, "打包下载.zip") // 利用file-saver保存文件})})}
}
6、执行handleBatchDownload()方法即可打包下载
7、注意:1.文件名称需要根据项目来修改,当文件名称后缀为正确的文件后缀时,则表示修改成功。2.下载方法执行时 403则为跨域了说明跨域匹配失败,其他问题根据业务需求修改下载方法。8、参考文章https://www.mmxiaowu.com/article/59b23f5d5b06a403cf687ed6https://blog.csdn.net/weixin_34185512/article/details/93916884?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.controlhttps://blog.csdn.net/liwan_1219/article/details/103879821

vue配置多个跨域+下载打包相关推荐

  1. No ‘Access-Control-Allow-Origin‘ header is present on the requested resource Vue配置代理解决跨域问题

    前言 在进行web开发进行数据请求的时候常常会遇到跨域问题导致无法请求数据. 如果采用如下方法向http://localhost:4000服务器发送getStudents进行接口数据请求,在后端没有处 ...

  2. vue 使用a标签跨域下载文件

    vue项目中下载文件 场景:项目中下载文件过大时接口无法正常响应, 后端给的解决方案是从另一个文件服务器上下载文件,所以提供的是一个跨域访问的api接口,前端需跨域调用后端接口下载文件 // 下载as ...

  3. VUE部署nginx解决跨域问题

    VUE部署nginx解决跨域问题 Vue的代理跨域问题,需要确定的是在开发阶段可以使用,部署到服务器后出现请求失败的问题(404),如下图. VUE配置的代理 Vue的代理跨域问题,需要确定的是在开发 ...

  4. Vue 配置使用 externals 使用cdn减小打包体积 (前端优化)

    Vue 配置使用 externals 使用cdn减小打包体积 在 vue.config.js 中 书写配置 // 引入webpackconst webpack = require('webpack') ...

  5. vue反向代理解决跨域及部署nginx端口转发解决跨域

    1. 前言 本文是为了解决vue反向代理解决跨域及部署服务器nginx端口转发解决跨域,因为踩了不少的坑,百度了很多,也试了太多的方法,最终得以解决,所以记录一下,希望遇到同样问题的友友们可以高效的解 ...

  6. Vue + Nodejs + Express 解决跨域的问题

    Vue + Nodejs + Express 解决跨域的问题 首先检测你的Vue的版本号 此文章针对3.0版本解决跨域问题 $ vue -V 2.X or 3.X 直接访问如下 created() { ...

  7. Vue之jwt(跨域身份验证,令牌)

    1. JWT是什么 JSON Web Token (JWT),它是目前最流行的跨域身份验证解决方案 2. 为什么使用JWT JWT的精髓在于:"去中心化",数据是保存在客户端的. ...

  8. 前端:下载文件实现方式及跨域下载(详解)

    前言:本文详细介绍在开发过程中前端如何与后端配合实现文件下载至本地,并详细说明特殊格式文件如何处理.如果你是一名前端开发者,恰好需要实现后端文件下载至本地的需求,那么恭喜你本篇文章一定会帮到你! 需求 ...

  9. java 跨域 下载文件_文件下载重命名(可跨域)

    一.正常情况下,我们都如此下载文件并修改文件名,在a标签上面添加download属性 var link = document.createElement('a'); link.href = file. ...

最新文章

  1. oracle查询语句注意事项:
  2. mysql数据库物理备份_MySQL数据库之xtrabackup物理备份(一)
  3. UA MATH567 高维统计 专题0 为什么需要高维统计理论?——协方差估计的高维效应与Marcenko-Pastur规则
  4. 某站点下载资源自己主动评论器
  5. mysql经典总结文章_MySQL基础篇(01):经典实用查询案例,总结整理
  6. 相信坚持的力量,我的程序员打怪升级之路
  7. 我们为什么活得这么累
  8. pg插入执行成功但是没有数据_pg_lightool基于basebackup的单表恢复和块恢复
  9. 剑指offer:删除链表中重复的节点
  10. 认识计算机硬件.ppt,认识计算机硬件完整ppt课件
  11. TP5.1导出指定的多个日期的数据记录
  12. js刷新页面的几种方式与区别
  13. 固定效应or随机效应?如何用matlab进行豪斯曼检验
  14. 服务器网卡相关知识点
  15. 作业盒子小学版android,作业盒子小学生官方版
  16. CISSP基本概念与常见名词
  17. Run-Time Check Failure #2 - Stack around the variable was corrupte问题处理
  18. KNIME Python Integration安装配置指南
  19. word标尺单位怎么变更单位
  20. 《Unity Shader入门精要》笔记02 第1章+第2章

热门文章

  1. JAVASE笔记之Java语言概述
  2. 布易般的旅途(二)星星点灯,照亮我的前程
  3. 乌鸦QQ好友上线通知 v1.0
  4. 今天收到苹果9条警告 这种不是闹着玩的,必须认真自己查查自己应用是否真的有问题或者让人怀疑的倾向
  5. ejs java_ejs教程丶Java教程网-IT开发者们的技术天堂
  6. 普通股与优先股的主要区别
  7. 情话爬虫工具[windows版]
  8. [html] pre与xmp标签有什么区别?
  9. instagram的手机验证码乱码解决方法(中国)
  10. 南京特殊师范教育学院计算机科学与技术,2021年南京特殊教育师范学院高考录取结果什么时候出来及查询系统入口...